Ich möchte PyCharm für die Mathematik-Entwicklung ausprobieren. Normalerweise führe ich Eclipse aus, um die Sage-Entwicklung durchzuführen, aber jetzt möchte ich es mit PyCharm ausprobieren.
Um Eclipse mit Sage-Umgebungsvariablen zu starten, mache ich normalerweise in der Befehlszeile Folgendes:
sage -sh
cd /path/to/Eclipse
./Eclipse
Die erste Zeile lädt die Umgebungsvariablen von sage, die restliche startet Eclipse. Wie kann ich dasselbe für pyCharm tun? (Hinweis: Ich verwende einen Mac und Ubuntu für die Sage-Entwicklung; die oben genannten Befehle sind für beide Betriebssysteme unangemessen)
Sie können Pycharm
vom Mac-Terminal aus mit dem Befehl open starten. Geben Sie einfach open /path/to/App
ein.
Applications$ ls -lrt PyCharm\ CE.app/
total 8
[email protected] 71 amit admin 2414 Sep 24 11:08 lib
[email protected] 4 amit admin 136 Sep 24 11:08 help
[email protected] 12 amit admin 408 Sep 24 11:08 plugins
[email protected] 29 amit admin 986 Sep 24 11:08 license
[email protected] 4 amit admin 136 Sep 24 11:08 skeletons
[email protected] 1 amit admin 10 Sep 24 11:08 build.txt
[email protected] 6 amit admin 204 Sep 24 11:12 Contents
[email protected] 14 amit admin 476 Sep 24 11:12 bin
[email protected] 31 amit admin 1054 Sep 25 21:43 helpers
/Applications$
/Applications$ open PyCharm\ CE.app/
Create Command-line Launcher
/usr/local/bin/charm
erstellt wurde$ charm YOUR_FOLDER_OR_FILE
eingebenMöge das was du brauchst.
Sie haben Recht, dass die JetBrains-Hilfeseite nicht sehr klar ist. Unter OS X möchten Sie den Launcher verwenden:
/Applications/PyCharm.app/Contents/MacOS/pycharm
Oder für die Community Edition:
/Applications/PyCharm\ CE.app/Contents/MacOS/pycharm
Das Hinzufügen eines Symlinks zu dieser Binärdatei funktionierte leider nicht für mich (der Launcher würde abstürzen). Das Einstellen eines Alias hat jedoch funktioniert. Fügen Sie dies in Ihrem .bash_profile
(oder in welcher Shell auch immer Sie verwenden) hinzu:
alias pycharm="/Applications/PyCharm CE.app/Contents/MacOS/pycharm"
Dann können Sie Befehle einfach mit pycharm
ausführen.
Damit können Sie zum Beispiel ein Projekt öffnen:
pycharm ~/repos/my-project
Oder öffnen Sie eine bestimmte Zeile einer Datei in einem Projekt:
pycharm ~/repos/my-project --line 42 ~/repos/my-project/script.py
Oder sehen Sie sich die Unterschiede zweier Dateien an (sie müssen nicht Teil eines Projekts sein):
pycharm ~/some_file.txt ~/Downloads/some_other_file.txt
Beachten Sie, dass ich absolute Pfade an diese Dateien übergeben musste, da PyCharm sie nicht finden konnte.
Normalerweise benutze ich einen eingebauten Application Launcher (open) von OS X:
alias pc='open -a /Applications/PyCharm\ CE.app'
Dann kann ich Folgendes eingeben:
pc myfile1.txt myfiles*.py
Obwohl Sie keine (leichteren) Argumente an PyCharm übergeben können, wenn Sie Dateien schnell öffnen möchten (ohne vollständige Pfadnamen für die Datei zu verwenden), ist dies der Trick.
Es ist jetzt möglich , um den Befehlszeilenstarter automatisch aus der JetBrains Toolbox zu erstellen. Das ist wie man es macht:
Generate Shell scripts
;Shell script location
Mit dem Ort, an dem sich die Trägerraketen befinden sollen. Sie müssen dies manuell tun, es wird zu diesem Zeitpunkt nicht automatisch gefüllt!Auf dem Mac könnte der Ort /usr/local/bin
Sein. Für Anfänger können Sie einen beliebigen Pfad innerhalb der PATH-Variablen verwenden oder der PATH-Variablen in Ihrem Bash-Profil einen neuen Pfad hinzufügen. Verwenden Sie echo $PATH
, Um zu sehen, welche Pfade vorhanden sind.
Hinweis ! Bei mir hat es nicht sofort geklappt, ich musste ein wenig herumfummeln, bevor die Skripte erstellt wurden. Sie können zum Getriebe des IDEA (PyCharm zum Beispiel)) gehen und den Starternamen anzeigen/ändern. Für PyCharm lautet der Standardname also pycharm
, aber Sie können dies ändern zu was auch immer Sie bevorzugen.
Wenn Sie die Toolbox nicht verwenden, können Sie trotzdem meine ursprüngliche Antwort verwenden.
~~ Aus irgendeinem Grund ist der Create Command Line Launcher
In 2019.1 nicht mehr verfügbar. ~~ Weil er jetzt Teil der JetBrains Toolbox ist
So können Sie das Skript selbst erstellen:
Wenn Sie den Befehl charm bereits verwendet haben, verwenden Sie type -a charm
, Um das Skript zu finden. Ändern Sie die pycharm-Version in den Dateipfaden. Beachten Sie, dass die Nummerierung in der ersten Variablen RUN_PATH
Unterschiedlich ist. Sie müssen dies selbst im Verzeichnis nachschlagen.
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'
Wenn Sie den Befehl charm zuvor nicht verwendet haben, müssen Sie ihn erstellen.
Erstellen Sie die Charm-Datei wie folgt: /usr/local/bin/charm
Fügen Sie dann diesen Code hinzu (ändern Sie die Versionsnummer wie oben beschrieben in Ihre Version):
#!/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)
Verwenden Sie Extras -> Befehlszeilen-Startprogramm erstellen, um ein Python-Skript zu installieren, in dem Sie den aktuellen Arbeitsordner einfach mit charm starten können.
Sehr wichtig!
Jedes Mal, wenn Sie ein Upgrade von pyCharm durchführen, müssen Sie dieses Befehlszeilentool erneut erstellen, da es sich lediglich um ein Python-Skript handelt, das auf eine möglicherweise veraltete pyCharm-Konfiguration verweist. Wenn Sie versuchen, charm .
auszuführen, schlägt dies fehl
Um PyCharm vom Terminal in Ubuntu 16.04 zu öffnen, geben Sie die CD in ein
{installation home}/bin
was in meinem Fall war
/home/nikhil/pycharm-community-2018.1.1/bin/
und tippe dann:
./pycharm.sh
Navigieren Sie zu dem Verzeichnis am Terminal cd [your directory]
Navigiere zu dem Verzeichnis auf dem Terminal
verwenden Sie charm .
, um das Projekt in PyCharm zu öffnen
Einfachste und schnellste Möglichkeit, ein Projekt in PyCharm zu öffnen
Nach der Installation auf kubuntu stellte ich fest, dass mein pycharm-Skript in ~/bin/pycharm
nur ein Desktopeintrag war:
[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
Offensichtlich konnte ich dies nicht zum Öffnen von der Befehlszeile aus verwenden:
$ 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
Es gibt jedoch einen Hinweis in der Desktop-Eintragsdatei. In /snap/pycharm-community/
habe ich /snap/pycharm-community/current/bin/pycharm.sh
gefunden. Ich habe ~/bin/pycharm
entfernt (eigentlich umbenannt, um ein Backup zu haben) und habe es dann getan
ln -s /snap/pycharm-community/current/bin/pycharm.sh pycharm
dort fand ich wieder den Anfang des Pfades, indem ich das Desktop-Eingabeskript prüfte, mit dem ich beginnen musste.
Jetzt kann ich Dateien mit pycharm von der Kommandozeile aus öffnen. Ich weiß nicht, was ich dieses Mal während der Installation durcheinander gebracht habe. die letzten zwei Male, die ich neu installiert habe, hatte es keine Probleme.
Einfache Lösung ohne Pfadangabe:
open -b com.jetbrains.pycharm
Sie können es als Alias für eine einfachere Verwendung im Alltag festlegen (in Ihrem .bash_rc
usw.):
alias pycharm='open -b com.jetbrains.pycharm'
Verwendungszweck:
pycharm .
pycharm file.py
Nützliche Informationen für einige:
Bei der Installation von PyCharm als Snap-Paket wird unter Linux automatisch der Befehlszeilen-Starter namens pycharm-professional, pycharm-community oder pycharm-education erstellt. Die Tools | Der Befehl Befehlszeilenstart erstellen ist daher nicht verfügbar.
open /Applications/PyCharm\ CE.app/
öffnet das primäre Dialogfeld von Pycharm, in dem Sie das Projekt auswählen können.
arbeitete für mich mit macOS 10.13.6
& Pycharm 2018.1
Ab 2019.1 EAP ist die Option Create Commmand Line Launcher
nicht mehr im Menü Werkzeuge verfügbar. Meine Lösung ist, den folgenden Alias in meinem bash/zsh-Profil zu verwenden:
Stellen Sie sicher, dass Sie chmod -x ...../pycharm
ausführen, um die Binärdatei ausführbar zu machen.
# 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)'"
Unter MacOS habe ich diesen Alias in meiner bashrc:
alias pycharm="open -a /Applications/PyCharm*.app"
Ich kann es so verwenden: pycharm <project dir or file>
Der Vorteil von PyCharm auf diese Weise ist, dass Sie das aktuelle Verzeichnis in PyCharm mit pycharm .
öffnen können (im Gegensatz zu /Applications/PyCharm*.app/Contents/MacOS/pycharm .
, das stattdessen das PyCharm-Anwendungsverzeichnis öffnet)
Update: Ich habe zur JetBrains Toolbox gewechselt, um PyCharm zu installieren. PyCharm zu finden ist etwas komplexer geworden, aber bisher hatte ich Glück mit diesem Monster:
alias pycharm="open -a \"\$(ls -r /Applications/apps/PyCharm*/*/*/PyCharm*.app | head -n 1 | sed 's/:$//')\""
Das mitgelieferte Hilfsprogramm, das unter /usr/local/bin/charm
installiert wird, funktionierte unter OS X nicht, daher habe ich dieses Hilfsprogramm zusammengehackt. Es funktioniert tatsächlich!
#!/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