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

  1. (use-package python
  2. :mode ("\\.py\\'" . python-mode))
  3. ;; ##############
  4. ;; damit der EPC-Server funktioniert,
  5. ;; muss in /etc/localhost der Eintrag
  6. ;; 127.0.0.1 localhost
  7. ;; enthalten sein!
  8. ;; ##############
  9. ;; virtualenv für python muss installiert sein
  10. ;; Benutzung
  11. ;; venv-workon: virtualenv aussuchen und setzen
  12. ;; venv-deactivate: deaktiviert virtualenv
  13. ;; venv-mkvirtualenv: erstellt neue virtualenv in venv-location
  14. ;; venv-lsvirtualenv: listet alle virtualenvs auf
  15. ;; venv-cdvirtualenv: wechselt default-Verzeichnis zum momentanen virtualenv-Verzeichnis
  16. ;; venv-cpvirtualenv: erstellt neue virtualenv aus einem exisiterenden.
  17. ;; fragt nach beiden Namen
  18. ;;(use-package pyvenv
  19. ;; :ensure t
  20. ;; :init
  21. ;; (setenv "WORKON_HOME" "~/Archiv/Programmierprojekte/Python/virtualenv/")
  22. ;; (pyvenv-mode t)
  23. ;; )
  24. (use-package virtualenvwrapper
  25. :ensure t
  26. :init
  27. (venv-initialize-interactive-shells) ;;interactive shell support
  28. (venv-initialize-eshell) ;;eshell support
  29. (setq venv-location "~/Archiv/Programmierprojekte/Python/virtualenv/")
  30. (setq python-environment-directory venv-location)
  31. (add-hook 'venv-postmkvirtualenv-hook
  32. (lambda () (shell-command "pip install epc jedi")))
  33. ;; (add-hook 'venv-postactivate-hook 'jedi:stop-server) ;;server-neustart, wenn neue virtualenv
  34. ;; (add-hook 'venv-postdeactivate-hook 'jedi:stop-server) ;;server-neustart, wenn neue virtualenv
  35. )
  36. ;; sucht und aktiviert die virtualenv nach folgenden Aspekten:
  37. ;; .python-version im project-root (ethält absoluten Pfad zur virtualenv
  38. ;; .venv oder venv Verzeichnis im project-root
  39. ;; eine virtualenv mit dem selben Namen wie project-root
  40. ;; - project-root ist definiert als Verzeichnis, dass "auto-virtualenvwapper-project-root-files" enthält,
  41. ;; die da wären: .python-version, .dir-locals.el, .projectile, .emacs-project, .manage.py, .git
  42. ;; für mich zuverlässig funktioiert nur absoluter Pfadin .python-version
  43. ;;(use-package auto-virtualenvwrapper
  44. ;; :ensure t
  45. ;; :config
  46. ;; (add-hook 'python-mode-hook #'auto-virtualenvwrapper-activate))
  47. ;;activate on changing buffers
  48. ;; (add-hook 'window-configuration-change-hook #'auto-virtualenvwrapper-activate)
  49. ;;activate on focus in
  50. ;; (add-hook 'focus-in-hook #'auto-virtualenvwrapper-activate))
  51. (use-package py-autopep8
  52. :config
  53. (add-hook 'python-mode-hook 'py-autopep8-enable-on-save))
  54. ;; benötigt pip install jedi / emerge dev-python/jedi
  55. (use-package company-jedi ;; company-mode completion backend for python jedi
  56. :defer t
  57. :ensure t
  58. :config
  59. (add-hook 'python-mode-hook 'jedi:setup)
  60. (setq jedi:complete-on-dot t)
  61. (setq jedi:use-shortcuts t)
  62. (setq jedi:get-in-function-call-delay 100)
  63. (setq jedi:tooltip-method '(pos-tip popup))
  64. (defun config/enable-company-jedi ()
  65. (add-to-list 'company-backends 'company-jedi)
  66. (lambda() (setq company-backends '(company-jedi)))
  67. )
  68. (add-hook 'python-mode-hook 'config/enable-company-jedi))
  69. (use-package jedi
  70. :ensure t
  71. :init
  72. (progn
  73. (setq jedi:complete-on-dot t)
  74. (setq jedi:setup-keys t)
  75. (add-hook 'python-mode-hook 'jedi:setup)))
  76. (provide 'lang-python)