Construction d'environnement Python (pyenv + poetry + pipx)

What's this? Environnement Macbook Python

Depuis qu'il a été intégré, c'est un mémo. L'environnement est ** mac OS 10.14.6 Mojave **. Nous partirons du principe que l'homebrew est déjà inclus. (Si vous n'avez pas d'homebrew, veuillez vous référer à Homebrew Official et l'ajouter) Je pense que je vais le mettre à jour de temps en temps.

Installation de Python 3

Installez le système python3 avec homebrew. Si vous l'avez déjà, veuillez l'ignorer. Veuillez également ignorer les personnes qui disent: "Je mettrai pyenv plus tard. Je le mettrai dans pyenv." L'installation de python3 sur le système est mon passe-temps. (~~ De plus, je ne sais pas ce que c'est, mais quand j'essaie de lier numpy et scipy avec mkl avec python sur pyenv, cela échoue ... ~~ Pour plus d'informations ici)

$ brew install python

Installez pyenv

Entrez «pyenv» selon Officiel. Je pense que brew install pyenv est facile, mais je n'aime pas vraiment PYENV_ROOT = / usr / local / var / pyenv (c'est un passe-temps complet. Je veux aussi le rendre aussi similaire que possible à l'environnement Linux. ), Alors entrez-le avec git ( brew install pyenv ne pose aucun problème).

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

Après l'installation avec, éditez .bash_profile pour exécuter & pyenv init via PATH.

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

Redémarrez le shell et vous pourrez utiliser pyenv.

Si vous n'avez pas installé python3 sur votre système, faites ici pyenv install 3.7.6, pyenv global 3.7.6.

Si l'installation de pyenv échoue, l'installation des derniers commandlinetools depuis https://developer.apple.com/download/more/?=command%20line%20tools peut fonctionner.

installation de poésie

Suivez Officiel.

$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3

Mon hobby est aussi de créer .venv dans le répertoire du projet

$ poetry config virtualenvs.in-project true

Courir. Les paramètres ici

$ poetry config --list

Vous pouvez le voir sur.

Installer pipx

Si vous expliquez grossièrement aux gens "Qu'est-ce que pipx en premier lieu?" ...

Il y a une application (commande) à installer avec pip (comme sphinx-quickstart). J'utilise ce genre de chose dans presque tous les environnements virtuels. Burns C'est un problème à installer dans tous les environnements virtuels. Par conséquent, celle qui permet d'utiliser de telles applications (commandes) qui peuvent être saisies avec pip globalement.

est. Le fonctionnaire est ici.

Ignorez ces personnes et passez à autre chose.

Pour ceux qui ont installé python avec homebrew

$ brew install pipx
$ pipx ensurepath

Pour ceux qui rendent python global dans pyenv

$ python3 -m pip install --user pipx
$ python3 -m pipx ensurepath

Ajoutez ce qui suit à .bash_profile pour activer la complétion des onglets.

eval "$(register-python-argcomplete pipx)"

C'est la fin. Je vous remercie pour votre travail acharné.

Créer un environnement avec de la poésie

Il y a deux façons de créer un environnement avec de la poésie, «poésie nouvelle» et «poésie init».

my-package
├── pyproject.toml
├── README.rst
├── my_package
│   └── __init__.py
└── tests
    ├── __init__.py
    └── test_my_package.py

Si vous voulez créer un paquet, vous devez le reconnaître comme "poetry new ", sinon vous devriez le reconnaître comme "poetry in it".

Probablement ce dernier est souvent le cas, donc ici nous utiliserons "la poésie dedans" pour créer l'environnement.

Tout d'abord, installez python utilisé dans le projet avec pyenv. Utilisons «3.7.4» ici.

$ pyenv install 3.7.4

Créez un répertoire pour votre projet.

$ mkdir /foo/bar/project

Après avoir spécifié la version de python à utiliser avec pyenv local, poetry init.

$ cd /foo/bar/project
$ pyenv local 3.7.4
$ poetry init
(Si vous répondez à ce qu'on vous demande, pyproject.toml est généré)
(Ignorer la question et plus tard pyproject.Vous pouvez éditer toml)
(Tout d'abord, pyproject par vous-même.Vous pouvez faire toml)

Vous pouvez installer le paquet comme décrit dans pyproject.toml avec poetry install.

$ poetry install
(C'est pyproject.Le paquet écrit en toml est installé)
(À ce point`.venv`Est également fait)

Vous pouvez également ajouter un package avec poetry add <package>.

Pour plus d'informations sur l'utilisation de la poésie, consultez la Documentation officielle.

L'environnement virtuel (.venv) est créé automatiquement lorsque vous utilisez pour la première fois poetry add ou poetry install, mais avant cela, créez un environnement virtuel comme python -m venv .venv etc. Est également bon. Vous pourriez penser que c'est nécessaire, mais il semble que c'est la seule façon de le faire lorsque vous avez besoin de pip.conf (je ne connais pas d'autre moyen pour l'instant). pip.conf doit être sous .venv (ce sera .venv / pip.conf). Au fait, dans mon cas, pip.conf ($ HOME / .pip / pip.conf) de python3 du système

[install]
no-binary = numpy,scipy

[wheel]
no-binary = numpy,scipy

Si vous ne faites rien, cela vous affectera. Ainsi, lorsque j'utilise numpy, scipy, je crée volontairement .venv / pip.conf avec le contenu suivant.

[install]
no-binary = 

[wheel]
no-binary = 

Si vous ne pensez pas à mkl, la construction de numpy, scipy échouera, donc je vais le faire (~~ J'écrirai à ce sujet plus tard ~~ J'ai fait un article → numpy, scipy sous pyenv + poetry environment to mkl Je veux l'utiliser).

(Exemple d'utilisation de pipx) Installer sphinx avec pipx

Pour pipx, je pense que vous devriez voir l'exemple d'utilisation, donc je vais vous présenter la procédure pour installer sphinx en utilisant pipx. Comme mentionné ci-dessus, il est difficile de mettre «sphinx» dans tous les environnements virtuels (ou de ne jamais le faire), donc «pipx» entre en jeu.

$ pipx install sphinx

Si vous voulez utiliser sphinx_rtd_theme ou sphinxcontrib-blockdiag,

$ pipx inject sphinx sphinx_rtd_theme
$ pipx inject sphinx sphinxcontrib-blockdiag

Tu peux le faire.

finalement

Jusqu'à présent, j'utilisais pipenv, mais comparé à pipenv, poetry devrait installer le paquet plus rapidement. Cependant, je ne fais pas beaucoup de paquets, alors quand on me demande si ça doit être de la poésie, ce n'est pas le cas. S'il y a autre chose qui semble bon, je peux changer à nouveau (je le répète tout le temps ... y a-t-il un objectif?)

référence

Recommended Posts

Construction d'environnement Python (pyenv + poetry + pipx)
Construction d'environnement (python)
Construction d'environnement Python (pyenv, anaconda, tensorflow)
construction d'environnement python
Python - Construction de l'environnement
Construction de l'environnement Python
Obtenez un environnement de développement Python propre avec pyenv + pipx + Poetry
Création d'un environnement de développement Python pour Windows + gVim + Poetry
construction d'environnement python homebrew
Construction de l'environnement de développement Python
construction de l'environnement pyenv + fish
Construction de l'environnement de développement python2.7
Construction de l'environnement Python @ Win7
Construction de l'environnement Python3 TensorFlow (Mac et pyenv virtualenv)
Construction de l'environnement Python 3.x par Pyenv (CentOS, Ubuntu)
Construction de l'environnement Python (Windows10 + Emacs)
Construction de l'environnement CI ~ Édition Python ~
Construction de l'environnement Python pour Mac
Procédure de construction de l'environnement python Anaconda3
Construction de l'environnement Python3 (pour les débutants)
Construction d'environnement Python et TensorFlow
Construire un environnement Python sous un environnement Windows 7
[MEMO] [Construction de l'environnement de développement] Python
Construction de l'environnement de python2 & 3 (OSX)
Construction de l'environnement de développement Python 2020 [De l'installation de Python à l'introduction à la poésie]
[Python] Construction de l'environnement Django (pyenv + pyenv-virtualenv + Anaconda) pour macOS
Construction de l'environnement Python sur Mac (pyenv, virtualenv, anaconda, notebook ipython)
Construction d'environnement de python et opencv
Commencez avec Python! ~ ① Construction de l'environnement ~
Construction de l'environnement Anaconda Python sous Windows 10
Construction d'un environnement d'apprentissage amélioré Python + Unity
J'ai vérifié la construction de l'environnement Mac Python
Mémo de construction de l'environnement Python sur Mac
[Python3] Construction de l'environnement de développement << Édition Windows >>
Construction de l'environnement de développement Python sur macOS
Construire un environnement pour python3.8 sur Mac
Environnement de développement Python fluide pour les équipes [Poetry + pyenv + black + isort]
Construction de l'environnement Python3 avec pyenv-virtualenv (CentOS 7.3)
Construction de l'environnement Python3 TensorFlow pour Mac
Mémo de construction de l'environnement de développement Emacs Python
Construction de l'environnement pytorch @ python3.8 avec pipenv
[docker] Construction de l'environnement python3.5 + numpy + matplotlib
Construction de l'environnement Python3.6 (à l'aide de l'environnement Win Anaconda)
Construction d'environnements OpenCV3 et Python3 sur Ubuntu
Créer un environnement avec pyenv et pyenv-virtualenv
Création d'un environnement de développement local Python Partie 1 (installation de pyenv, pyenv-virtualenv, pip)
[Pyenv] Construire un environnement python avec ubuntu 16.04
Procédure de construction de l'environnement de développement Python (anaconda) (SpringToolsSuites) _2020.4
Utilisez smbus avec python3 sous environnement pyenv
Procédure de construction de l'environnement de projet Python (pour Windows)
Construction de l'environnement de développement Python3 + venv + VSCode + macOS
Construction de l'environnement VScode (Windows10, Python, C ++, C, Git)
Procédure de construction de l'environnement: Ubuntu + Apache2 + Python + Pyramid
Créer un environnement pour Python et l'apprentissage automatique (macOS)
Créez un environnement virtuel pour python avec pyenv
Entendons-nous bien avec Python # 0 (Construction de l'environnement)
Construction de l'environnement Django