(use-package python :mode ("\\.py\\'" . python-mode)) ;; ############## ;; EPC muss installiert sein ;; Fedora: ;; # dnf install python3-pip ;; pip3 install --user epc ;; damit der EPC-Server funktioniert, ;; muss in /etc/hosts der Eintrag ;; 127.0.0.1 localhost ;; enthalten sein! ;; ############## ;; Python-Code ausführen: ;; C-C C-z open python shell ;; C-C C-c run content of buffer in opened shell ;; C-C C-r run selected region in python shell ;; virtualenv für python muss installiert sein ;; Fedora: # dnf install python3-virtualenv ;; ;; Benutzung ;; venv-workon: virtualenv aussuchen und setzen ;; venv-deactivate: deaktiviert virtualenv ;; venv-mkvirtualenv: erstellt neue virtualenv in venv-location ;; venv-lsvirtualenv: listet alle virtualenvs auf ;; venv-cdvirtualenv: wechselt default-Verzeichnis zum momentanen virtualenv-Verzeichnis ;; venv-cpvirtualenv: erstellt neue virtualenv aus einem exisiterenden. ;; fragt nach beiden Namen (use-package virtualenvwrapper :ensure t :init (venv-initialize-interactive-shells) ;;interactive shell support (venv-initialize-eshell) ;;eshell support (setq venv-location "~/Archiv/Programmierprojekte/Python/virtualenv/") (setq python-environment-directory venv-location) (add-hook 'venv-postmkvirtualenv-hook (lambda () (shell-command "pip install epc jedi"))) ;; (add-hook 'venv-postactivate-hook 'jedi:stop-server) ;;server-neustart, wenn neue virtualenv ;; (add-hook 'venv-postdeactivate-hook 'jedi:stop-server) ;;server-neustart, wenn neue virtualenv ) ;; sucht und aktiviert die virtualenv nach folgenden Aspekten: ;; .python-version im project-root (ethält absoluten Pfad zur virtualenv ;; .venv oder venv Verzeichnis im project-root ;; eine virtualenv mit dem selben Namen wie project-root ;; - project-root ist definiert als Verzeichnis, dass "auto-virtualenvwapper-project-root-files" enthält, ;; die da wären: .python-version, .dir-locals.el, .projectile, .emacs-project, .manage.py, .git ;; für mich zuverlässig funktioiert nur absoluter Pfadin .python-version (use-package auto-virtualenvwrapper :ensure t :config (add-hook 'python-mode-hook #'auto-virtualenvwrapper-activate)) ;;activate on changing buffers ;; (add-hook 'window-configuration-change-hook #'auto-virtualenvwrapper-activate) ;;activate on focus in ;; (add-hook 'focus-in-hook #'auto-virtualenvwrapper-activate)) (use-package py-autopep8 :ensure t :config (add-hook 'python-mode-hook 'py-autopep8-enable-on-save)) ;; benötigt pip install jedi / emerge dev-python/jedi (use-package company-jedi ;; company-mode completion backend for python jedi ;; :defer t :ensure t :config (defun my/python-mode-hook() (add-to-list 'company-backends 'company-jedi)) (add-hook 'python-mode-hook 'my/python-mode-hook) ) (provide 'lang-python)