web-dev-qa-db-ja.com

コマンドライン(端末)からPycharmを起動します

セージ数学の開発のためにPyCharmを試してみたいです。通常、セージ開発を行うためにEclipseを実行しますが、PyCharmで試してみたいと思います。

セージ環境変数を使用してEclipseを起動するには、コマンドラインで通常以下を実行します。

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

最初の行はセージ環境変数をロードし、残りはEclipseを起動します。 pyCharmでも同じことができますか? (注意:セージ開発にはMacとUbuntuを使用しています。上記のコマンドは両方のOSに依存しません)

  1. リンク1 は探しているソリューションに近いですが、pyCharm.shはどこにも見つかりません。
  2. リンク2 :Jetbrainsも明確な指示を与えません。
39
torrho
  1. Open Application Pycharm
  2. メニューバーでツールを見つける
  3. Create Command-line Launcherをクリックします
  4. /usr/local/bin/charmで作成されたランチャー実行可能ファイルの確認
  5. $ charm YOUR_FOLDER_OR_FILEと入力するだけでプロジェクトまたはファイルを開きます

これがあなたに必要なことを。

144
joest

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

または、2つのファイルの差分を表示します(プロジェクトの一部である必要はありません):

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

これらのファイルへの絶対パスを渡す必要があることに注意してください。そうしないと、PyCharmはそれらを見つけることができませんでした。

15
ford

IDE内では、次をクリックできます。

ツール/コマンドラインランチャーの作成...

Create Command-line Launcher

14
augustocbx

私は通常、OS Xの組み込みアプリケーションランチャー(開く)を使用してエイリアスを作成します。

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

次に、入力できます:

pc myfile1.txt myfiles*.py

(簡単に)PyCharmに引数を渡すことはできませんが、(ファイルへのフルパス名を使用せずに)ファイルをすばやく開く方法が必要な場合は、これでうまくいきます。

8
Speedy99

更新

現在可能 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。では使用できなくなりました~~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)
5
botenvouwer

[ツール]-> [コマンドラインランチャーの作成]を使用して、pythonスクリプトをインストールします。このスクリプトでは、charmを使用して現在の作業フォルダーを起動できます。

非常に重要!

PyCharmをアップグレードするときはいつでも、そのコマンドラインツールを再作成する必要があります。これは、古くなっている可能性のあるpyCharm構成を指すpythonスクリプトで、実行charm .

4
Ami Mahloof

ターミナルのディレクトリに移動しますcd [your directory]

端末上のディレクトリに移動

つかいます charm . PyCharmでプロジェクトを開く

PyCharmでプロジェクトを開く最も簡単で迅速な方法

2

Ubuntu 16.04のターミナルからPyCharmを開くには、cdして

{installation home}/bin

私の場合は

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

次に入力します:

./pycharm.sh
2
Nikhil Rawat

Mac OSXで

アップデート2019/05これはJetBrains 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)'"
1
episodeyang

Kubuntuにインストールした後、~/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を使用してファイルを開くことができます。今回はインストール中に何を台無しにしたのかわかりません。最後の2回は新規インストールを行いましたが、問題はありませんでした。

0
EL_DON

パスを必要としない簡単なソリューション:

open -b com.jetbrains.pycharm



毎日使いやすいようにエイリアスとして設定できます(.bash_rcなど):

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

使用法:

pycharm .
pycharm file.py
0
luckydonald

一部の有用な情報:

Linuxでは、PyCharmをスナップパッケージとしてインストールすると、pycharm-professional、pycharm-community、またはpycharm-educationalという名前のコマンドラインランチャーが自動的に作成されます。ツール|したがって、コマンドラインランチャーの作成コマンドは使用できません。

0
Leo Naylor

open /Applications/PyCharm\ CE.app/は、プロジェクトを選択するためのプライマリPycharmダイアログボックスを開きます。

macOS 10.13.6Pycharm 2018.1

0
Sathish

更新:PyCharm 2018.Xの時点で私の答えは機能しなくなりました

MacOSでは、bashrcに次のエイリアスがあります。

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

次のように使用できます:pycharm <project dir or file>

この方法でPyCharmを起動する利点は、pycharm .を使用してPyCharmの現在のディレクトリを開くことができることです(PyCharmアプリケーションディレクトリを代わりに開く/Applications/PyCharm*.app/Contents/MacOS/pycharm .とは異なります)


更新:JetBrains Toolboxに切り替えてPyCharmをインストールしました。 PyCharmを見つけることはもう少し複雑になりましたが、これまでのところ私はこのモンスターで幸運でした:

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

/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
0
rjurney