Starten Sie Pycharm über die Befehlszeile (Terminal)


71

Ich möchte PyCharm für die Entwicklung der weisen Mathematik ausprobieren. Normalerweise führe ich Eclipse aus, um Salbei zu entwickeln, aber jetzt möchte ich es mit PyCharm versuchen.

Um Eclipse mit weisen Umgebungsvariablen zu starten, gehe ich normalerweise in der Befehlszeile wie folgt vor:

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

Die erste Zeile lädt die Salbei-Umgebungsvariablen, der Rest startet Eclipse. Wie kann ich dasselbe für pyCharm tun? (Hinweis: Ich verwende einen Mac und Ubuntu für die Salbei-Entwicklung. Die obigen Befehle sind für beide Betriebssysteme unabhängig.)

  1. Link 1 befindet sich in der Nähe der gesuchten Lösung, ich kann jedoch nirgendwo eine pyCharm.sh finden.
  2. Link 2 : Jetbrains gibt auch keine klaren Anweisungen.

2
Unter MacOS können Sie PyCharm starten, indem Sie "charm" eingeben. Dies ist das gleiche Verhalten wie bei Yonathan Simson, das für Ubuntu erwähnt wurde.
cndv

2
JeBrains bietet auch 2 Jahre später keine Anweisungen dazu an. Das bedeutet, dass die Verwendung von PyCharm zum Ausführen von Nur-Sudo-Skripten (wie Maushaken) von JB nicht gut dokumentiert ist. Ich bin überhaupt nicht beeindruckt.
Code4life

1
Weiß jemand, wie man das unter Windows im Jahr 2019 macht?
Jesse Reza Khorasanee

Antworten:


198

Bearbeiten (April 2020) : Es scheint, dass die Erstellung von Startskripten jetzt in den Einstellungen der Toolbox-App verwaltet wird. Weitere Informationen finden Sie in der Ankündigung der Toolbox-App .

- -

  1. Öffnen Sie Application Pycharm
  2. Finden Sie Werkzeuge in der Menüleiste
  3. Klicken Create Command-line Launcher
  4. Überprüfen der ausführbaren Datei des Launchers, die in erstellt wurde /usr/local/bin/charm
  5. Öffnen Sie das Projekt oder die Datei und geben Sie einfach ein $ charm YOUR_FOLDER_OR_FILE

Vielleicht ist es das, was du brauchst.


Dies ist großartig, da Sie auch Dateien oder Verzeichnisse öffnen können.
JnBrymn

8
Es stellt sich heraus, dass Sie auf Ubuntu standardmäßig bereits über diese Datei verfügen /usr/local/bin/charm. Obwohl ich es ohne dein Trinkgeld nicht leicht gefunden hätte. Vielen Dank!
Yonatan Simson

2
Beachten Sie, dass OSX charmbei der Installation auch die Binärdatei erstellt hat . Genial !
AdelaN

2
Dies ist im EAP 2019.1 verschwunden.
Folgeyang

1
@episodeyang Sie haben Recht, siehe blog.jetbrains.com/blog/2018/08/23/toolbox-app-1-11-whats-new . Ich werde meine Antwort entsprechend ändern.
Botenvouwer

17

Sie haben Recht, dass die JetBrains-Hilfeseite nicht sehr klar ist. Unter OS X möchten Sie den Launcher verwenden unter:

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

Oder für die Community Edition:

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

Leider würde das Hinzufügen eines Symlinks zu dieser Binärdatei für mich nicht funktionieren (der Launcher würde abstürzen). Das Festlegen eines Alias ​​funktionierte jedoch. Fügen Sie dies in Ihre .bash_profile(oder eine andere Shell, die Sie verwenden) hinzu:

alias pycharm="/Applications/PyCharm CE.app/Contents/MacOS/pycharm"

Dann können Sie Befehle einfach mit ausführen pycharm.

Damit können Sie beispielsweise 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 den Unterschied 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 zu diesen Dateien übergeben musste, da PyCharm sie nicht finden konnte.


1
Es sieht so aus, als könnten Sie ein Verzeichnis auch als Projekt öffnen mit: / Applications / PyCharm \ CE.app/Contents/MacOS/pycharm / path / to / folder
Henry

17

Innerhalb der IDE können Sie klicken:

Extras / Befehlszeilen-Launcher erstellen ...

Erstellen Sie den Befehlszeilen-Launcher


4
Wie in der Antwort von @Ami Mahloof ausgeführt, muss dieser Launcher möglicherweise nach einem PyCharm-Update neu erstellt werden (bei mir wurde PyCharm gestartet, ohne jedoch den angegebenen Pfad zu öffnen)
Florentin Le Moal,

9

Normalerweise verwende ich einen Alias ​​mit dem integrierten Anwendungsstarter (offen) von OS X:

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

Dann kann ich tippen:

pc myfile1.txt myfiles*.py

Obwohl Sie Args nicht (einfach) an PyCharm übergeben können, reicht dies aus, wenn Sie schnell Dateien öffnen möchten (ohne vollständige Pfadnamen für die Datei verwenden zu müssen).


8

Aktualisieren

Es ist jetzt möglich , den Befehlszeilen-Launcher automatisch aus der JetBrains Toolbox zu erstellen. Das ist wie man es macht:

  1. Öffnen Sie das Toolbox-Fenster.
  2. Gehen Sie zum Zahnradsymbol oben rechts (dem Einstellungsfenster für die Toolbox selbst).
  3. Einschalten Generate shell scripts;
  4. Füllen Sie das Shell script locationTextfeld mit dem Speicherort, an dem sich die Starter befinden sollen. Sie müssen dies manuell tun, es wird zu diesem Zeitpunkt nicht automatisch gefüllt!

Auf dem Mac könnte der Standort sein /usr/local/bin. 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 echo $PATHSie diese Option, um zu sehen, welche Pfade vorhanden sind.

Hinweis ! Es hat bei mir nicht sofort funktioniert, ich musste ein wenig herumspielen, bevor die Skripte generiert wurden. Sie können zum Getriebe der IDEA (z. B. PyCharm) gehen und den Namen des Starters anzeigen / ändern. Für PyCharm lautet der Standardname pycharm, Sie können ihn jedoch nach Belieben ändern.

Ursprüngliche Antwort

Wenn Sie die Toolbox nicht verwenden, können Sie trotzdem meine ursprüngliche Antwort verwenden.

~~ Aus irgendeinem Grund ist das Create Command Line Launcherin 2019.1 nicht mehr verfügbar. ~~ Weil es jetzt Teil der JetBrains Toolbox ist

So können Sie das Skript selbst erstellen:

Wenn Sie den Befehl charm bereits verwendet haben 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_PATHunterschiedlich 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 noch 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)

6

Verwenden Sie Extras -> Befehlszeilen-Launcher erstellen, um ein Python-Skript zu installieren, mit dem Sie den aktuellen Arbeitsordner einfach mit charm starten können.

Sehr wichtig!

Jedes Mal, wenn Sie Ihren pyCharm aktualisieren, müssen Sie dieses Befehlszeilentool neu erstellen, da es sich nur um ein Python-Skript handelt, das auf eine pyCharm-Konfiguration verweist, die möglicherweise veraltet ist und beim Versuch, ausgeführt zu werden, fehlschlägt charm .


Tatsächlich musste ich den Launcher jedes Mal neu erstellen, wenn ich PyCharm aktualisierte, damit er wieder funktioniert.
Tsando

Ich habe gerne einen Befehlszeilen-Launcher, aber ich nehme an, dies ist der Vorteil, wenn Toolbox dies nur für Sie erledigt!
Drew

3

Um PyCharm vom Terminal in Ubuntu 16.04 aus zu öffnen, cd in

{installation home}/bin

was in meinem Fall war

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

und geben Sie dann Folgendes ein:

./pycharm.sh


2

Unter Mac OSX

Update 2019/05 Dies kann jetzt in der JetBrains Toolbox App erfolgen. Sie können es einmal mit der Toolbox für alle Ihre JetBrain-IDEs festlegen.


Ab 2019.1 EAP ist die Create Commmand Line LauncherOption im Menü Extras nicht mehr verfügbar. Meine Lösung besteht darin, den folgenden Alias ​​in meinem Bash / Zsh-Profil zu verwenden:

Stellen Sie sicher, dass Sie ausführen chmod -x ...../pycharm, 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)'"

Die Release-Version von 2019.1 enthält wieder den Create Command Line LauncherMenüpunkt.
Rholmes

1

Einfache Lösung ohne Pfade:

open -b com.jetbrains.pycharm



Sie können es als Alias ​​für die täglich einfachere Verwendung festlegen (auf Ihre .bash_rcusw. setzen):

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

Verwendung:

pycharm .
pycharm file.py

1

Schritte für jemanden, der zsh auf einem Mac verwendet:

  1. emacs ~ / .zshrc &
  2. Fügen Sie dies in zshrc ---> alias pycharm = "/ Applications / PyCharm \ CE.app/Contents/MacOS/pycharm" ein.
  3. Quelle ~ / .zshrc
  4. Starten Sie durch Eingabe von pycharm im Befehlsfenster

0

Das mitgelieferte Dienstprogramm, auf dem installiert wird, /usr/local/bin/charmfunktionierte unter OS X nicht für mich, daher habe ich dieses Dienstprogramm stattdessen zusammen gehackt. 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

0

Update: Meine Antwort funktioniert ab PyCharm 2018.X nicht mehr

Unter MacOS habe ich diesen Alias ​​in meinem Bashrc:

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

Ich kann es so benutzen: pycharm <project dir or file>

Der Vorteil des Startens von PyCharm auf diese Weise besteht darin, dass Sie das aktuelle Verzeichnis in PyCharm mit öffnen können pycharm .(im Gegensatz dazu, /Applications/PyCharm*.app/Contents/MacOS/pycharm .dass stattdessen das PyCharm-Anwendungsverzeichnis geöffnet wird).


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/:$//')\""

0

Nach der Installation auf kubuntu stellte ich fest, dass mein Pycharm-Skript in ~/bin/pycharmnur ein Desktop-Eintrag 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 damit nichts über die Kommandozeile öffnen:

$ 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

Die Desktop-Eintragsdatei enthält jedoch einen Hinweis. Als /snap/pycharm-community/ich hineinschaute , fand ich /snap/pycharm-community/current/bin/pycharm.sh. Ich habe es entfernt ~/bin/pycharm(tatsächlich umbenannt, um ein Backup zu haben) und dann getan

ln -s /snap/pycharm-community/current/bin/pycharm.sh pycharm

wo ich wieder den Anfang des Pfades fand, indem ich das Desktop-Eingabeskript inspizierte, mit dem ich beginnen musste.

Jetzt kann ich Dateien mit pycharm über die Befehlszeile ö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.


0

Nützliche Informationen für einige:

Unter Linux wird durch die Installation von PyCharm als Snap-Paket automatisch der Befehlszeilen-Launcher mit den Namen pycharm-professional, pycharm-community oder pycharm-learning erstellt. Die Werkzeuge | Der Befehl zum Erstellen eines Befehlszeilen-Starters ist daher nicht verfügbar.


0

open /Applications/PyCharm\ CE.app/ öffnet das primäre Pycharm-Dialogfeld, um das Projekt auszuwählen.

arbeitete für mich mit macOS 10.13.6&Pycharm 2018.1


0

pycharm herunterladen & In UBUNTU öffnen

Herunterladen:

Öffnen:

  1. Navigieren Sie im extrahierten Ordner zum Verzeichnis bin.

  2. run: ./pycharm.sh


-1

Dies funktionierte für mich auf meinem 2017 imac macOS Mojave (Version 10.14.3).

  1. Öffnen Sie Ihr ~ / .bash_profile: nano ~/.bash_profile

  2. Fügen Sie den Alias ​​hinzu: alias pycharm="open /Applications/PyCharm\ CE.app"

  3. Terminal aktualisieren: source ~/.bash_profile

  4. Stellen Sie sicher, dass es funktioniert: pycharm


-2

Sie können Pycharmvom Mac-Terminal aus mit dem Befehl open starten . Schreib einfachopen /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/

Funktioniert einwandfrei in macOS 10.13.6
Sathish
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.