Запустите 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 делает также не дают четких указаний.

person torrho    schedule 02.03.2014    source источник
comment
В MacOS вы можете запустить PyCharm, набрав charm, это то же поведение, что и Йонатан Симсон, упомянутый для Ubuntu.   -  person cndv    schedule 16.12.2016
comment
JeBrains не предлагает инструкций, как это сделать, даже спустя 2 года. Это означает, что использование PyCharm для запуска скриптов, предназначенных только для sudo (например, хуков мыши), не очень хорошо документировано JB. Я совсем не впечатлен.   -  person code4life    schedule 10.04.2018
comment
Кто-нибудь знает, как это сделать на Windows в 2019??   -  person Jesse Reza Khorasanee    schedule 24.02.2020


Ответы (20)


Редактировать (апрель 2020 г.): кажется, что создание сценария запуска теперь управляется в настройках приложения Toolbox. См. объявление о приложении Toolbox для более подробной информации.

--

  1. Откройте приложение Pycharm
  2. Найти инструменты в строке меню
  3. Нажмите Create Command-line Launcher
  4. Проверка исполняемого файла лаунчера, созданного в /usr/local/bin/charm
  5. Откройте проект или файл, просто введите $ charm YOUR_FOLDER_OR_FILE

Может быть, это то, что вам нужно.

person joest    schedule 27.11.2014
comment
Это здорово, потому что вы также можете открывать файлы или каталоги. - person JnBrymn; 15.07.2015
comment
Получается, что по умолчанию на ubuntu у вас уже есть этот файл /usr/local/bin/charm. Хотя я не смог бы легко найти его без вашей подсказки. Спасибо! - person Yonatan Simson; 31.05.2016
comment
Обратите внимание, OSX также создала двоичный файл charm при установке. Потрясающий ! - person AdelaN; 19.06.2018
comment
Я смог найти эту команду, выполнив поиск в справке в pycharm, но, похоже, она отключена для меня. - person EL_DON; 31.08.2018
comment
Это исчезло в EAP 2019.1. - person episodeyang; 26.01.2019
comment
@episodeyang Он действительно исчез. Но вы можете изменить его вручную, чтобы он соответствовал более новой версии. Найдите расположение скрипта (используйте type -a charm), затем измените пути к файлам в скрипте python. Смотрите мой ответ для полного сценария. - person botenvouwer; 01.04.2019
comment
@botenvouwer теперь это можно сделать с помощью приложения JetBrains Toolbox. Их удаление из определенных IDE отражает это изменение дизайна. - person episodeyang; 03.04.2019
comment
@episodeyang У вас есть источник, подтверждающий это? Я считаю, что должно быть логическое объяснение, они не просто удалили бы это как 1-апрельскую шутку, а :/. Однако я не могу найти эту опцию в панели инструментов. Существует настройка под названием Generate shell scripts, я попробую посмотреть, что она делает. - person botenvouwer; 03.04.2019
comment
@episodeyang Вы правы, см. blog.jetbrains.com/blog/2018/08/23/toolbox-app-1-11-whats-new. Я изменю свой ответ соответственно. - person botenvouwer; 03.04.2019
comment
Здесь есть официальное описание этого значения для PyCharm 2019.3. - person artu-hnrq; 07.01.2020
comment
Как я могу запустить его отдельно от терминала? - person Ebram Shehata; 05.05.2020
comment
PyCharm 2021.1 (Community Edition) эта опция мне не видна. Значит, опять пропало? - person Kvothe; 21.04.2021

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

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

«Создать

person augustocbx    schedule 25.09.2017
comment
Как указано в ответе @Ami Mahloof, может потребоваться повторно создать эту программу запуска после обновления PyCharm (это было в случае со мной, PyCharm запускался, но без открытия заданного пути) - person Florentin Le Moal; 16.04.2018

Вы правы, что страница справки 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 не смог их найти.

person ford    schedule 09.07.2014
comment
Похоже, вы также можете открыть каталог как проект, используя: /Applications/PyCharm\ CE.app/Contents/MacOS/pycharm /path/to/folder - person Henry; 30.05.2015

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

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

Затем я могу ввести:

pc myfile1.txt myfiles*.py

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

person Speedy99    schedule 26.01.2016

Обновлять

теперь это возможно для автоматического создания средства запуска командной строки из 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)
person botenvouwer    schedule 01.04.2019

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

Очень важно!

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

person Ami Mahloof    schedule 24.09.2017
comment
Действительно, мне приходилось заново создавать панель запуска каждый раз, когда я обновлял PyCharm, чтобы она снова работала. - person tsando; 08.01.2020
comment
Мне нравится иметь средство запуска из командной строки, но я полагаю, что это и есть преимущество, если позволить Toolbox сделать это за вас! - person Drew; 20.07.2020

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

{installation home}/bin

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

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

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

./pycharm.sh
person Nikhil Rawat    schedule 28.04.2018

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

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

используйте charm ., чтобы открыть проект в PyCharm

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

person Ankur Shrivastava    schedule 15.02.2019

На Mac OSX

Обновление 2019/05 Теперь это можно сделать в приложении JetBrains Toolbox. Вы можете установить его один раз с помощью панели инструментов для всех ваших IDE JetBrain.


Начиная с EAP 2019.1, параметр 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)'"
person episodeyang    schedule 25.01.2019
comment
В релизной версии 2019.1 снова есть пункт меню Create Command Line Launcher. - person rholmes; 04.04.2019

Простое решение без необходимости путей:

open -b com.jetbrains.pycharm <file>



Вы можете установить его как псевдоним для повседневного использования (поместите на свой .bash_rc и т. д.):

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

Применение:

pycharm .
pycharm file.py
person luckydonald    schedule 02.05.2019

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

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

Включенная утилита, которая устанавливается в /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
person rjurney    schedule 04.06.2017

Обновление: мой ответ больше не работает с 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/:$//')\""
person Blaise    schedule 01.11.2017

После установки на 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 из командной строки. Я не знаю, что я напортачил во время установки на этот раз; последние два раза я делал новые установки, проблем не было.

person EL_DON    schedule 31.08.2018

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

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

person Leo Naylor    schedule 09.09.2018

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

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

person Sathish    schedule 23.03.2019

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

Скачать:

Открыть:

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

  2. выполнить: ./pycharm.sh

person Ram    schedule 01.11.2019

Это сработало для меня на моем imac 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

person timxor    schedule 17.03.2019

Через терминал (Linux)


Create a function with bash.
charm() { /usr/local/bin/charm; }
export charm

Через Пичарма

  1. Зайти в Пичарм
  2. Нажмите Двойной Shift (Shift + Shift)
  3. Найдите Создать средство запуска из командной строки.
  4. Введите Командная строка: /usr/local/bin/charm
  5. Нажмите ОК.
person Aram Simonyan    schedule 19.03.2021

Вы можете запустить 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/
person Amit Verma    schedule 02.03.2014
comment
Отлично работает в macOS 10.13.6 - person Sathish; 23.03.2019