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.
 

86 lines
3.5 KiB

(use-package python
:mode ("\\.py\\'" . python-mode))
;; ##############
;; damit der EPC-Server funktioniert,
;; muss in /etc/localhost der Eintrag
;; 127.0.0.1 localhost
;; enthalten sein!
;; ##############
;; virtualenv für python muss installiert sein
;; 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 pyvenv
;; :ensure t
;; :init
;; (setenv "WORKON_HOME" "~/Archiv/Programmierprojekte/Python/virtualenv/")
;; (pyvenv-mode t)
;; )
(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
: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
(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:complete-on-dot t)
(setq jedi:use-shortcuts t)
(setq jedi:get-in-function-call-delay 100)
(setq jedi:tooltip-method '(pos-tip popup))
(defun config/enable-company-jedi ()
(add-to-list 'company-backends 'company-jedi)
(lambda() (setq company-backends '(company-jedi)))
)
(add-hook 'python-mode-hook 'config/enable-company-jedi))
(use-package jedi
:ensure t
:init
(progn
(setq jedi:complete-on-dot t)
(setq jedi:setup-keys t)
(add-hook 'python-mode-hook 'jedi:setup)))
(provide 'lang-python)