セージ数学の開発のためにPyCharmを試してみたいです。通常、セージ開発を行うためにEclipseを実行しますが、PyCharmで試してみたいと思います。
セージ環境変数を使用してEclipseを起動するには、コマンドラインで通常以下を実行します。
sage -sh
cd /path/to/Eclipse
./Eclipse
最初の行はセージ環境変数をロードし、残りはEclipseを起動します。 pyCharmでも同じことができますか? (注意:セージ開発にはMacとUbuntuを使用しています。上記のコマンドは両方のOSに依存しません)
Create Command-line Launcher
をクリックします/usr/local/bin/charm
で作成されたランチャー実行可能ファイルの確認$ 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
または、2つのファイルの差分を表示します(プロジェクトの一部である必要はありません):
pycharm ~/some_file.txt ~/Downloads/some_other_file.txt
これらのファイルへの絶対パスを渡す必要があることに注意してください。そうしないと、PyCharmはそれらを見つけることができませんでした。
私は通常、OS Xの組み込みアプリケーションランチャー(開く)を使用してエイリアスを作成します。
alias pc='open -a /Applications/PyCharm\ CE.app'
次に、入力できます:
pc myfile1.txt myfiles*.py
(簡単に)PyCharmに引数を渡すことはできませんが、(ファイルへのフルパス名を使用せずに)ファイルをすばやく開く方法が必要な場合は、これでうまくいきます。
現在可能 JetBrains Toolboxからコマンドラインランチャーを自動的に作成します。これがあなたのやり方です:
Generate Shell scripts
をオンにします;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)
[ツール]-> [コマンドラインランチャーの作成]を使用して、pythonスクリプトをインストールします。このスクリプトでは、charmを使用して現在の作業フォルダーを起動できます。
非常に重要!
PyCharmをアップグレードするときはいつでも、そのコマンドラインツールを再作成する必要があります。これは、古くなっている可能性のあるpyCharm構成を指すpythonスクリプトで、実行charm .
ターミナルのディレクトリに移動しますcd [your directory]
つかいます charm .
PyCharmでプロジェクトを開く
PyCharmでプロジェクトを開く最も簡単で迅速な方法
Ubuntu 16.04のターミナルからPyCharmを開くには、cdして
{installation home}/bin
私の場合は
/home/nikhil/pycharm-community-2018.1.1/bin/
次に入力します:
./pycharm.sh
アップデート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)'"
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回は新規インストールを行いましたが、問題はありませんでした。
パスを必要としない簡単なソリューション:
open -b com.jetbrains.pycharm
毎日使いやすいようにエイリアスとして設定できます(.bash_rc
など):
alias pycharm='open -b com.jetbrains.pycharm'
使用法:
pycharm .
pycharm file.py
一部の有用な情報:
Linuxでは、PyCharmをスナップパッケージとしてインストールすると、pycharm-professional、pycharm-community、またはpycharm-educationalという名前のコマンドラインランチャーが自動的に作成されます。ツール|したがって、コマンドラインランチャーの作成コマンドは使用できません。
open /Applications/PyCharm\ CE.app/
は、プロジェクトを選択するためのプライマリPycharmダイアログボックスを開きます。
macOS 10.13.6
&Pycharm 2018.1
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/:$//')\""
/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