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.
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
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.
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.
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é.
Il y a deux façons de créer un environnement avec de la poésie, «poésie nouvelle» et «poésie init».
poetry new my-package
--Créez un répertoire et créez un modèle de package en dessous.
--La structure du répertoire ressemble à cecimy-package
├── pyproject.toml
├── README.rst
├── my_package
│ └── __init__.py
└── tests
├── __init__.py
└── test_my_package.py
poetry init
pyproject.toml
dans le répertoire où vous avez exécuté la commande.Si vous voulez créer un paquet, vous devez le reconnaître comme "poetry new
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).
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.
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?)
Recommended Posts