Ejecutar Pycharm desde la línea de comandos (terminal)

Quiero probar PyCharm para el desarrollo de Matemáticas Salvia. Normalmente ejecuto eclipse para hacer el desarrollo de Sage, pero ahora quiero probarlo con PyCharm.

Para iniciar eclipse con variables de entorno sage, en la línea de comandos normalmente hago lo siguiente:

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

La primera línea carga las variables de entorno de Sage, el rest inicia eclipse. ¿Cómo puedo hacer lo mismo para pyCharm? (note que estoy usando una Mac y Ubuntu para el desarrollo de sage; los comandos anteriores son agnósticos para ambos sistemas operativos)

  1. El enlace 1 está cerca de la solución que estoy buscando, sin embargo no puedo encontrar un pyCharm.sh en ningún lugar.
  2. Enlace 2 : Jetbrains tampoco da instrucciones claras.

Puede iniciar Pycharm desde la terminal de Mac usando el comando de abrir. Solo escribe 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/ 
  1. Abra la aplicación Pycharm
  2. Encuentra herramientas en la barra de menú
  3. Haga clic en Create Command-line Launcher
  4. Verificando el archivo ejecutable del iniciador que se creó en /usr/local/bin/charm
  5. Abra el proyecto o archivo simplemente escriba $ charm YOUR_FOLDER_OR_FILE

Que esto sea lo que necesites.

Tienes razón en que la página de ayuda de JetBrains no está muy clara. En OS X, querrás usar el lanzador en:

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

O, para la edición comunitaria:

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

Desafortunadamente, agregar un enlace simbólico a este binario no funcionaría para mí (el lanzador se bloquearía). Sin embargo, establecer un alias funcionó. Agrega esto a tu .bash_profile (o al shell que uses):

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

Entonces, puede ejecutar comandos con simplemente pycharm .

Con esto puedes hacer cosas como abrir un proyecto:

 pycharm ~/repos/my-project 

O abra una línea específica de un archivo en un proyecto:

 pycharm ~/repos/my-project --line 42 ~/repos/my-project/script.py 

O vea la diferencia de dos archivos (no necesitan ser parte de un proyecto):

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

Tenga en cuenta que necesitaba pasar rutas absolutas a esos archivos o PyCharm no pudo encontrarlos.

Dentro del IDE, puede hacer clic en:

Herramientas / Crear lanzador de línea de comandos …

Crear lanzador de línea de comandos

Normalmente hago un alias con el iniciador de aplicaciones incorporado (abierto) de OS X:

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

Entonces puedo escribir:

 pc myfile1.txt myfiles*.py 

Aunque no puede (fácilmente) pasar argumentos a PyCharm, si desea una forma rápida de abrir archivos (sin necesidad de usar nombres de ruta completos para el archivo), este es el truco.

Use Herramientas -> Crear un iniciador de línea de comandos que instalará un script de Python en el que solo puede iniciar la carpeta de trabajo actual usando charm.

¡Muy importante!

Cada vez que actualice su pyCharm, tendrá que volver a crear esa herramienta de línea de comandos, ya que solo es un script de python que apunta a una configuración de pyCharm que puede estar desactualizada y causará que falle cuando intente ejecutar el charm .

Para abrir PyCharm desde el terminal en Ubuntu 16.04, cd en

 {installation home}/bin 

que en mi caso era

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

y luego escriba:

 ./pycharm.sh 

Actualizar

Ahora es posible crear el iniciador de línea de comandos automáticamente desde JetBrains Toolbox. Así es como lo haces:

  1. Abre la ventana de la caja de herramientas;
  2. Vaya al icono de engranaje en la parte superior derecha (la ventana de configuración para la caja de herramientas en sí);
  3. Active Generate shell scripts ;
  4. Rellene el cuadro de texto de la Shell script location con la ubicación donde desea que residan los lanzadores. ¡Tienes que hacer esto manualmente, no se llenará automáticamente en este momento!

En Mac, la ubicación podría ser /usr/local/bin . Para los principiantes, puede usar cualquier ruta dentro de la variable PATH o agregar una nueva ruta a la variable PATH en su perfil de bash. Use echo $PATH para ver qué caminos están allí.

Nota No funcionó de inmediato, tuve que juguetear un poco antes de que se generaran los scripts. Puede ir a la caja de cambios de IDEA (por ejemplo, PyCharm) y ver / cambiar el nombre del lanzador. Así que para PyCharm, el nombre predeterminado es pycharm pero puede cambiarlo a lo que prefiera.

Respuesta original

Si no usa la caja de herramientas, aún puede usar mi respuesta original.

~~ Por alguna razón, el Iniciador de Create Command Line Launcher ya no está disponible en 2019.1. ~~ Porque ahora es parte de JetBrains Toolbox

Así es como puedes crear el script tú mismo:

Si ya usó el comando charm antes de usar type -a charm para encontrar el script. Cambia la versión pycharm en las rutas del archivo. Tenga en cuenta que la numeración en la primera variable RUN_PATH es diferente. Tendrás que buscar esto en el directorio tú mismo.

 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' 

Si no usó el comando charm antes, tendrá que crearlo.

Cree el archivo charm en algún lugar como este: /usr/local/bin/charm

Luego agregue este código (cambie el número de versión a su versión como se explicó anteriormente):

 #!/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  \n' + ' {0} merge   [base] ').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) 

La utilidad incluida que se instala en /usr/local/bin/charm no funcionó para mí en OS X, así que piraté esta utilidad en su lugar. ¡Realmente funciona!

 #!/usr/bin/env bash if [ -z "$1" ] then echo "" echo "Usage: charm " 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 

Actualización: mi respuesta ya no funciona a partir de PyCharm 2018.X

En MacOS, tengo este alias en mi bashrc:

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

Puedo usarlo así: pycharm

La ventaja de lanzar PyCharm de esta manera es que puede abrir el directorio actual en PyCharm usando pycharm . (a diferencia de /Applications/PyCharm*.app/Contents/MacOS/pycharm . que en su lugar abre el directorio de la aplicación PyCharm)


Actualización: cambié a JetBrains Toolbox para instalar PyCharm. Encontrar a PyCharm se ha vuelto un poco más complejo, pero hasta ahora tuve suerte con este monstruo:

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

Después de instalar en Kubuntu, encontré que mi script pycharm en ~/bin/pycharm era solo una entrada de escritorio:

 [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 

Obviamente, no podría usar esto para abrir nada desde la línea de comandos:

 $ 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 

Pero hay una pista en el archivo de entrada de escritorio. Mirando en /snap/pycharm-community/ , encontré /snap/pycharm-community/current/bin/pycharm.sh . ~/bin/pycharm (en realidad lo ~/bin/pycharm para tener una copia de seguridad) y luego hice

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

donde, una vez más, encontré el inicio de la ruta al inspeccionar el script de entrada del escritorio con el que tenía que empezar.

Ahora puedo abrir archivos con pycharm desde la línea de comandos. No sé lo que estropeé durante la instalación en este momento; Las dos últimas veces que hice nuevas instalaciones, no tuve problemas.

Información útil para algunos:

En Linux, la instalación de PyCharm como un paquete instantáneo crea automáticamente el lanzador de línea de comandos llamado pycharm-professional, pycharm-community o pycharm-educational. Las herramientas | Por lo tanto, el comando Crear comando de inicio de línea no está disponible.

En Mac OSX

A partir de 2019.1 EAP , la Create Commmand Line Launcher ya no está disponible en el menú Herramientas. Mi solución es usar el siguiente alias en mi perfil de bash / zsh:

Asegúrese de que ejecuta chmod -x ...../pycharm para hacer el ejecutable binario.

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

Vaya al directorio en el cd [your directory] la terminal cd [your directory]

Navega al directorio en la terminal

usar charm . para abrir el proyecto en PyCharm

La forma más sencilla y rápida de abrir un proyecto en PyCharm

open /Applications/PyCharm\ CE.app/ abre el cuadro de diálogo principal de Pycharm para elegir el proyecto.

trabajó para mí con macOS 10.13.6 y Pycharm 2018.1

En Ubuntu, una cosa para agregar es que Pycharm se lanza con charm o charm [file] . Si le das pycharm no será encontrado.

Esto me funcionó en mi imac macOS Mojave 2017 (versión 10.14.3).

  1. Abra su ~ / .bash_profile: nano ~/.bash_profile

  2. Agregue el alias: alias pycharm="open /Applications/PyCharm\ CE.app"

  3. Actualización de terminal: source ~/.bash_profile

  4. Afirmar que funciona: pycharm