You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

78 lines
3.1 KiB

(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)