从命令行(终端)启动Pycharm

时间:2014-03-02 21:38:48

标签: python command-line environment-variables pycharm sage

我想尝试PyCharm进行鼠尾草数学开发。通常我运行eclipse来进行sage开发,但现在我想用PyCharm尝试它。

要使用sage环境变量启动eclipse,在命令行中我通常会执行以下操作:

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

第一行加载sage环境变量,其余部分启动eclipse。我怎么能为pyCharm做同样的事情? (注意我使用Mac和Ubuntu进行sage开发;上面的命令对两个操作系统都是不可知的)

  1. Link 1接近我正在寻找的解决方案,但我无法在任何地方找到pyCharm.sh。
  2. Link 2:Jetbrains也没有给出明确的指示。

21 个答案:

答案 0 :(得分:128)

  1. 打开应用程序Pycharm
  2. 在菜单栏中查找工具
  3. 点击Create Command-line Launcher
  4. 检查已在/usr/local/bin/charm
  5. 中创建的启动器可执行文件
  6. 打开项目或文件,只需输入$ charm YOUR_FOLDER_OR_FILE
  7. 即可

    愿你这需要。

答案 1 :(得分:14)

JetBrains help page不是很清楚你是对的。在OS X上,您需要在以下位置使用启动器:

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

或者,社区版:

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

不幸的是,为这个二进制文件添加符号链接对我来说不起作用(启动程序会崩溃)。但是设置别名是有效的。将其添加到.bash_profile(或您使用的任何shell)中:

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无法找到它们。

答案 2 :(得分:14)

在IDE中,您可以单击:

  

工具/创建命令行启动器...

Create Command-line Launcher

答案 3 :(得分:8)

我通常使用OS X中的内置应用程序启动器(打开)进行别名:

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

然后我可以输入:

pc myfile1.txt myfiles*.py

虽然你不能(轻松)将args传递给PyCharm,但是如果你想快速打开文件(不需要使用文件的完整路径名),这就行了。

答案 4 :(得分:4)

使用工具 - >创建命令行启动器,它将安装一个python脚本,您可以使用charm启动当前工作文件夹。

非常重要!

无论何时升级pyCharm,都必须重新创建该命令行工具,因为它只是一个指向pyCharm配置的python脚本,该配置可能已过时,并且当您尝试运行charm .时会导致它失败

答案 5 :(得分:3)

更新

now possible是从JetBrains Toolbox自动创建命令行启动器的过程。这是您的操作方式:

  1. 打开工具箱窗口;
  2. 转到右上角的齿轮图标(工具箱本身的设置窗口);
  3. 打开Generate shell scripts;
  4. Shell script location文本框中填写启动器要驻留的位置。您必须手动执行此操作,该操作暂时不会自动填充!

在Mac上,该位置可能是/usr/local/bin。对于新手,您可以使用PATH变量内的任何路径,也可以在bash配置文件中为PATH变量添加新路径。使用echo $PATH查看其中的路径。

注意!它对我来说不是立即可用,在脚本生成之前,我不得不花了一些时间。您可以转到IDEA的变速箱(例如PyCharm),然后查看/更改启动器名称。因此,对于PyCharm,默认名称为pycharm,但您可以将其更改为自己喜欢的名称。

原始答案

如果您不使用工具箱,仍然可以使用我的原始答案。

~~由于某种原因,Create Command Line Launcher在2019.1..1。中不再可用。~~ 因为它现在已经是JetBrains Toolbox的一部分

这是您自己创建脚本的方式:

如果在使用type -a charm查找脚本之前已经使用过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)

答案 6 :(得分:2)

要从Ubuntu 16.04中的终端打开PyCharm,请执行

{installation home}/bin

在我的案例中是

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

然后输入:

./pycharm.sh

答案 7 :(得分:2)

导航到终端cd [your directory]上的目录

Navigate to the directory on the terminal

使用charm .在PyCharm中打开项目

在PyCharm中打开项目的最快捷方式

答案 8 :(得分:1)

您可以使用open命令从Mac终端启动Pycharm。只需输入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/

答案 9 :(得分:1)

在Mac上使用zsh的用户的步骤:

  1. emacs〜/ .zshrc&
  2. 将其放在zshrc --->别名pycharm =“ / Applications / PyCharm \ CE.app/Contents/MacOS/pycharm”
  3. 源〜/ .zshrc
  4. 在命令窗口中键入pycharm启动

答案 10 :(得分:0)

通过终端 (Linux)


用 bash 创建一个函数。
charm() { /usr/local/bin/charm; }
export charm

通过 Pycharm

<块引用>
  1. 进入 Pycharm
  2. 点击双 Shift (Shift + Shift)
  3. 搜索创建命令行启动器
  4. 输入命令行启动器:/usr/local/bin/charm
  5. 点击确定

答案 11 :(得分:0)

pycharm下载并在UBUNTU中打开

下载:

打开:

  1. 导航到提取的文件夹中的bin目录。

  2. 运行: ./ pycharm.sh

答案 12 :(得分:0)

无需路径的简便别名解决方案:

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

用法:

pycharm .
pycharm file.py

答案 13 :(得分:0)

open /Applications/PyCharm\ CE.app/打开主要的Pycharm对话框以选择项目。

macOS 10.13.6Pycharm 2018.1

为我工作

答案 14 :(得分:0)

在Mac OSX上

更新2019/05 现在,可以在JetBrains Toolbox应用中完成此操作。您可以使用Toolbox为所有JetBrain IDE设置一次。


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)'"

答案 15 :(得分:0)

某些有用的信息:

在Linux上,将PyCharm作为snap软件包安装会自动创建名为pycharm-professional,pycharm-community或pycharm-educational的命令行启动器。工具|因此,“创建命令行启动器”命令不可用。

答案 16 :(得分:0)

在kubuntu上安装后,我发现~/bin/pycharm中的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打开文件。我不知道这次安装过程中发生了什么。最近两次我完成了全新安装,一切都没有问题。

答案 17 :(得分:0)

更新:我的答案不再适用于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/:$//')\""

答案 18 :(得分:0)

安装到/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

答案 19 :(得分:-1)

这对我的2017 imac macOS Mojave(版本10.14.3)有效。

  1. 打开您的〜/ .bash_profile: nano ~/.bash_profile

  2. 追加别名: alias pycharm="open /Applications/PyCharm\ CE.app"

  3. 更新终端: source ~/.bash_profile

  4. 断言其有效: pycharm

答案 20 :(得分:-1)

在Ubuntu中,要添加的一件事是 Pycharm 是使用charmcharm [file]启动的。如果您提供pycharm,则无法找到。