Запустите Pycharm из командной строки (терминал)

Я хочу попробовать PyCharm для развития мудрой математики. Обычно я запускаю eclipse для разработки sage, но теперь я хочу попробовать это с PyCharm.

Чтобы запустить eclipse с переменными окружения sage, в командной строке я обычно делаю следующее:

sage -sh
cd /path/to/eclipse
./eclipse

Первая строка загружает переменные окружения sage, остальные запускают eclipse. Как я могу сделать то же самое для pyCharm? (обратите внимание, что я использую Mac и Ubuntu для разработки sage; приведенные выше команды не зависят от обеих ОС)

  1. Ссылка 1 близка к решению, которое я ищу, однако я нигде не могу найти pyCharm.sh.
  2. Ссылка 2: Jetbrains также не дает четких инструкций.

23 ответа

Решение

Вы можете запустить Pycharm из терминала Mac с помощью команды open. Просто введите open /path/to/App

Applications$ ls -lrt PyCharm\ CE.app/
total 8
drwxr-xr-x@ 71 amit  admin  2414 Sep 24 11:08 lib
drwxr-xr-x@  4 amit  admin   136 Sep 24 11:08 help
drwxr-xr-x@ 12 amit  admin   408 Sep 24 11:08 plugins
drwxr-xr-x@ 29 amit  admin   986 Sep 24 11:08 license
drwxr-xr-x@  4 amit  admin   136 Sep 24 11:08 skeletons
-rw-r--r--@  1 amit  admin    10 Sep 24 11:08 build.txt
drwxr-xr-x@  6 amit  admin   204 Sep 24 11:12 Contents
drwxr-xr-x@ 14 amit  admin   476 Sep 24 11:12 bin
drwxr-xr-x@ 31 amit  admin  1054 Sep 25 21:43 helpers
/Applications$
/Applications$ open PyCharm\ CE.app/
  1. Открытое приложение Pycharm
  2. Найти инструменты в строке меню
  3. Нажмите Create Command-line Launcher
  4. Проверка исполняемого файла модуля запуска, который был создан в /usr/local/bin/charm
  5. Откройте проект или файл просто введите $ charm YOUR_FOLDER_OR_FILE

Пусть это то, что вам нужно.

Вы правы, что страница помощи JetBrains не очень понятна. На OS X вы захотите использовать панель запуска по адресу:

/Applications/PyCharm.app/Contents/MacOS/pycharm

Или для общественного издания:

/Applications/PyCharm\ CE.app/Contents/MacOS/pycharm

К сожалению, добавление символической ссылки на этот двоичный файл не сработало бы для меня (программа запуска зависала). Настройка псевдонима работала, хотя. Добавьте это в свой .bash_profile (или какую бы оболочку вы не использовали):

alias pycharm="/Applications/PyCharm CE.app/Contents/MacOS/pycharm"

Затем вы можете запустить команды просто pycharm,

С этим вы можете делать такие вещи, как открыть проект:

pycharm ~/repos/my-project

Или откройте определенную строку файла в проекте:

pycharm ~/repos/my-project --line 42 ~/repos/my-project/script.py

Или просмотрите различия двух файлов (они не должны быть частью проекта):

pycharm ~/some_file.txt ~/Downloads/some_other_file.txt

Обратите внимание, что мне нужно было передать абсолютные пути к этим файлам, иначе PyCharm не смог их найти.

Внутри IDE вы можете нажать:

Инструменты / Создать панель запуска командной строки...

Создать панель запуска командной строки

Простое решение псевдонимов без необходимости использования путей:

alias pycharm='open -b com.jetbrains.pycharm'

Использование:

pycharm .
pycharm file.py

Обновить

Теперь можно автоматически запускать средство запуска командной строки из JetBrains Toolbox. Вот как вы это делаете:

  1. Откройте окно панели инструментов;
  2. Перейдите к значку шестеренки в правом верхнем углу (окно настроек для самой панели инструментов);
  3. Включи Generate shell scripts;
  4. Заполните Shell script location текстовое поле с местом, где вы хотите, чтобы пусковые установки находились. Вы должны сделать это вручную, он не будет заполняться автоматически в это время!

На Mac местоположение может быть /usr/local/bin, Для новичков вы можете использовать любой путь внутри переменной PATH или добавить новый путь к переменной PATH в своем профиле bash. использование echo $PATH чтобы увидеть, какие пути есть.

Примечание У меня это не сработало сразу, мне пришлось немного повозиться, прежде чем сгенерировать сценарии. Вы можете перейти к коробке передач IDEA (например, PyCharm) и посмотреть / изменить имя программы запуска. Так что для PyCharm имя по умолчанию pycharm но вы можете изменить это на то, что вы предпочитаете.

Оригинальный ответ

Если вы не используете панель инструментов, вы все равно можете использовать мой оригинальный ответ.

~~ По какой-то причине Create Command Line Launcher больше не доступен в 2019.1.~~ Потому что теперь он является частью JetBrains Toolbox

Вот как вы можете создать скрипт самостоятельно:

Если вы уже использовали команду charm перед использованием type -a charm найти сценарий. Измените версию Pycharm в пути к файлам. Обратите внимание, что нумерация в первой переменной RUN_PATH это отличается. Вам придется самому посмотреть это в директории.

RUN_PATH = u'/Users/boatfolder/Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6183.50/PyCharm.app'
CONFIG_PATH = u'/Users/boatfolder/Library/Preferences/PyCharm2019.1'
SYSTEM_PATH = u'/Users/boatfolder/Library/Caches/PyCharm2019.1'

Если вы ранее не использовали команду charm, вам придется ее создать.

Создайте файл очарования где-нибудь так: /usr/local/bin/charm

Затем добавьте этот код (измените номер версии на вашу версию, как описано выше):

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import socket
import struct
import sys
import os
import time

# see com.intellij.idea.SocketLock for the server side of this interface

RUN_PATH = u'/Users/boatfolder/Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/191.6183.50/PyCharm.app'
CONFIG_PATH = u'/Users/boatfolder/Library/Preferences/PyCharm2019.1'
SYSTEM_PATH = u'/Users/boatfolder/Library/Caches/PyCharm2019.1'


def print_usage(cmd):
    print(('Usage:\n' +
           '  {0} -h | -? | --help\n' +
           '  {0} [project_dir]\n' +
           '  {0} [-l|--line line] [project_dir|--temp-project] file[:line]\n' +
           '  {0} diff <left> <right>\n' +
           '  {0} merge <local> <remote> [base] <merged>').format(cmd))


def process_args(argv):
    args = []

    skip_next = False
    for i, arg in enumerate(argv[1:]):
        if arg == '-h' or arg == '-?' or arg == '--help':
            print_usage(argv[0])
            exit(0)
        elif i == 0 and (arg == 'diff' or arg == 'merge' or arg == '--temp-project'):
            args.append(arg)
        elif arg == '-l' or arg == '--line':
            args.append(arg)
            skip_next = True
        elif skip_next:
            args.append(arg)
            skip_next = False
        else:
            path = arg
            if ':' in arg:
                file_path, line_number = arg.rsplit(':', 1)
                if line_number.isdigit():
                    args.append('-l')
                    args.append(line_number)
                    path = file_path
            args.append(os.path.abspath(path))

    return args


def try_activate_instance(args):
    port_path = os.path.join(CONFIG_PATH, 'port')
    token_path = os.path.join(SYSTEM_PATH, 'token')
    if not (os.path.exists(port_path) and os.path.exists(token_path)):
        return False

    try:
        with open(port_path) as pf:
            port = int(pf.read())
        with open(token_path) as tf:
            token = tf.read()
    except (ValueError):
        return False

    s = socket.socket()
    s.settimeout(0.3)
    try:
        s.connect(('127.0.0.1', port))
    except (socket.error, IOError):
        return False

    found = False
    while True:
        try:
            path_len = struct.unpack('>h', s.recv(2))[0]
            path = s.recv(path_len).decode('utf-8')
            if os.path.abspath(path) == os.path.abspath(CONFIG_PATH):
                found = True
                break
        except (socket.error, IOError):
            return False

    if found:
        cmd = 'activate ' + token + '\0' + os.getcwd() + '\0' + '\0'.join(args)
        if sys.version_info.major >= 3: cmd = cmd.encode('utf-8')
        encoded = struct.pack('>h', len(cmd)) + cmd
        s.send(encoded)
        time.sleep(0.5)  # don't close the socket immediately
        return True

    return False


def start_new_instance(args):
    if sys.platform == 'darwin':
        if len(args) > 0:
            args.insert(0, '--args')
        os.execvp('/usr/bin/open', ['-a', RUN_PATH] + args)
    else:
        bin_file = os.path.split(RUN_PATH)[1]
        os.execv(RUN_PATH, [bin_file] + args)


ide_args = process_args(sys.argv)
if not try_activate_instance(ide_args):
    start_new_instance(ide_args)

Обычно я использую псевдоним встроенного запуска приложений (открыть) из OS X:

alias pc='open -a /Applications/PyCharm\ CE.app'

Тогда я могу напечатать:

pc myfile1.txt myfiles*.py

Хотя вы не можете (легко) передавать аргументы в PyCharm, но если вам нужен быстрый способ открытия файлов (без необходимости использовать полные пути к файлу), это делает свое дело.

Используйте Tools -> Create Command-line Launcher, который установит скрипт на python, где вы можете просто запустить текущую рабочую папку, используя charm .

Очень важно!

Каждый раз, когда вы обновляете pyCharm, вы должны заново создать этот инструмент командной строки, поскольку он представляет собой скрипт на python, который указывает на конфигурацию pyCharm, которая может быть устаревшей и приведет к сбою при попытке запустить charm .

На Mac OSX

На 2019.1 EAP, Create Commmand Line Launcher опция больше не доступна в меню Инструменты. Мое решение состоит в том, чтобы использовать следующий псевдоним в моем профиле bash/zsh:

Убедитесь, что вы бежите chmod -x ...../pycharm сделать бинарный исполняемый файл.

# in your ~/.profile or other rc file to the effect.

alias pycharm="open -a '$(ls -r /Users/geyang/Library/Application\ Support/JetBrains/Toolbox/apps/PyCharm-P/**/PyCharm*.app/Contents/MacOS/pycharm)'"

Чтобы открыть PyCharm из терминала в Ubuntu 16.04, перейдите в

{installation home}/bin

который в моем случае был

/home/nikhil/pycharm-community-2018.1.1/bin/

а затем введите:

./pycharm.sh

Перейдите в каталог на терминале cd [your directory]

Перейдите в каталог на терминале

использование charm . открыть проект в PyCharm

Самый простой и быстрый способ открыть проект в PyCharm

Шаги для тех, кто использует zsh на Mac:

  1. emacs ~/.zshrc&
  2. Поместите это в zshrc---> alias pycharm="/Applications/PyCharm\CE.app/Contents/MacOS/pycharm"
  3. источник ~/.zshrc
  4. Запустите, набрав pycharm в командном окне

Полезная информация для некоторых:

В Linux при установке PyCharm в качестве пакета привязки автоматически создается средство запуска командной строки с именем pycharm-professional, pycharm-community или pycharm-Educational. Инструменты | Поэтому команда "Создать командную строку" недоступна.

Теперь вы можете создать сценарий оболочки в jetbrains-toolbox, следуя этому руководству:

Теперь вы можете выполнить его через оболочку:

      ~/.local/bin/jetbrains-pycharm

open /Applications/PyCharm\ CE.app/ открывает главное окно Pycharm Dialogue для выбора проекта.

работал для меня с macOS 10.13.6 & Pycharm 2018.1

pycharm скачать и открыть в UBUNTU

Скачать:

Открыто:

  1. Перейдите в каталог bin в извлеченной папке.

  2. запустить: ./pycharm.sh

Включенная утилита, которая устанавливает /usr/local/bin/charm у меня не работало на OS X, поэтому я взломал эту утилиту. Это на самом деле работает!

#!/usr/bin/env bash

if [ -z "$1" ]
then
  echo ""
  echo "Usage: charm <filename>"
  exit
fi
FILENAME=$1

function myreadlink() {
  (
  cd $(dirname $1)         # or  cd ${1%/*}
  echo $PWD/$(basename $1) # or  echo $PWD/${1##*/}
  )
}

FULL_FILE=`myreadlink $FILENAME`;

/Applications/PyCharm\ CE.app/Contents/MacOS/pycharm $FULL_FILE

вы можете включить следующую команду в свой скрипт

      root@aachutha-Inspiron-N5010:~# pycharm-community &

[1] 5698

После установки на Kubuntu я обнаружил, что мой скрипт Pycharm в ~/bin/pycharm была просто запись на рабочем столе:

[Desktop Entry]                                                                                                                                                                                                 
Version=1.0
Type=Application
Name=PyCharm Community Edition
Icon=/snap/pycharm-community/79/bin/pycharm.png
Exec=env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/pycharm-community_pycharm-community.desktop /snap/bin/pycharm-community %f
Comment=Python IDE for Professional Developers
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm-ce

Очевидно, я не мог использовать это, чтобы открыть что-либо из командной строки:

$ pycharm setup.py
/home/eldond/bin/pycharm_old: line 1: [Desktop: command not found
/home/eldond/bin/pycharm_old: line 4: Community: command not found

Но есть подсказка в файле ввода рабочего стола. Ищу в /snap/pycharm-community/, Я нашел /snap/pycharm-community/current/bin/pycharm.sh, Я удалил ~/bin/pycharm (на самом деле переименовал его, чтобы иметь резервную копию), а затем сделал

ln -s /snap/pycharm-community/current/bin/pycharm.sh pycharm

где, опять же, я нашел начало пути, проверив сценарий ввода с рабочего стола, с которого мне пришлось начинать.

Теперь я могу открыть файлы с pycharm из командной строки. Я не знаю, что я испортил во время установки на этот раз; последние два раза я делал свежие установки, с этим проблем не было.

Обновление: мой ответ больше не работает с PyCharm 2018.X

В MacOS у меня есть этот псевдоним в моем bashrc:

alias pycharm="open -a /Applications/PyCharm*.app"

Я могу использовать это так: pycharm <project dir or file>

Преимущество запуска PyCharm таким образом заключается в том, что вы можете открыть текущий каталог в PyCharm, используя pycharm . (В отличие от /Applications/PyCharm*.app/Contents/MacOS/pycharm . который открывает каталог приложения PyCharm вместо)


Обновление: я переключился на JetBrains Toolbox для установки PyCharm. Найти PyCharm стало немного сложнее, но пока мне повезло с этим монстром:

alias pycharm="open -a \"\$(ls -r  /Applications/apps/PyCharm*/*/*/PyCharm*.app | head -n 1 | sed 's/:$//')\""

Это сработало для меня на моем MacOS Mojave 2017 года (Версия 10.14.3).

  1. Откройте ваш ~/.bash_profile:nano ~/.bash_profile

  2. Добавьте псевдоним:alias pycharm="open /Applications/PyCharm\ CE.app"

  3. Обновить терминал:source ~/.bash_profile

  4. Утверждаю, что это работает:pycharm

В Ubuntu нужно добавить, что Pycharm запускается с charm или же charm [file], Если вы даете pycharm это не будет найдено.

В Linux


Вы можете просто * создать функцию * в терминале, которая будет автоматически запускать Pycharm.
      charm() { bash <path_to_pycharm_directory>/bin/pycharm.sh; }
export charm

Пример:
мой каталог pycharm находится в opt так:
charm() { bash /opt/pycharm-2020.3.3/bin/pycharm.sh; }
export charm

Другие вопросы по тегам