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