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.

65 lines
2.8 KiB

  1. (use-package python
  2. :mode ("\\.py\\'" . python-mode))
  3. ;; ##############
  4. ;; damit der EPC-Server funktioniert,
  5. ;; muss in /etc/hosts 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 virtualenvwrapper
  19. :ensure t
  20. :init
  21. (venv-initialize-interactive-shells) ;;interactive shell support
  22. (venv-initialize-eshell) ;;eshell support
  23. (setq venv-location "~/Archiv/Programmierprojekte/Python/virtualenv/")
  24. (setq python-environment-directory venv-location)
  25. (add-hook 'venv-postmkvirtualenv-hook
  26. (lambda () (shell-command "pip install epc jedi")))
  27. ;; (add-hook 'venv-postactivate-hook 'jedi:stop-server) ;;server-neustart, wenn neue virtualenv
  28. ;; (add-hook 'venv-postdeactivate-hook 'jedi:stop-server) ;;server-neustart, wenn neue virtualenv
  29. )
  30. ;; sucht und aktiviert die virtualenv nach folgenden Aspekten:
  31. ;; .python-version im project-root (ethält absoluten Pfad zur virtualenv
  32. ;; .venv oder venv Verzeichnis im project-root
  33. ;; eine virtualenv mit dem selben Namen wie project-root
  34. ;; - project-root ist definiert als Verzeichnis, dass "auto-virtualenvwapper-project-root-files" enthält,
  35. ;; die da wären: .python-version, .dir-locals.el, .projectile, .emacs-project, .manage.py, .git
  36. ;; für mich zuverlässig funktioiert nur absoluter Pfadin .python-version
  37. (use-package auto-virtualenvwrapper
  38. :ensure t
  39. :config
  40. (add-hook 'python-mode-hook #'auto-virtualenvwrapper-activate))
  41. ;;activate on changing buffers
  42. ;; (add-hook 'window-configuration-change-hook #'auto-virtualenvwrapper-activate)
  43. ;;activate on focus in
  44. ;; (add-hook 'focus-in-hook #'auto-virtualenvwrapper-activate))
  45. (use-package py-autopep8
  46. :config
  47. (add-hook 'python-mode-hook 'py-autopep8-enable-on-save))
  48. ;; benötigt pip install jedi / emerge dev-python/jedi
  49. (use-package company-jedi ;; company-mode completion backend for python jedi
  50. ;; :defer t
  51. :ensure t
  52. :config
  53. (defun my/python-mode-hook()
  54. (add-to-list 'company-backends 'company-jedi))
  55. (add-hook 'python-mode-hook 'my/python-mode-hook)
  56. )
  57. (provide 'lang-python)