J'ai un fichier mysql.py
, que j'utilise dans presque tous mes projets. Comme je ne veux pas copier et coller le même fichier dans chacun de ces projets, j'ai écrit un module - éventuellement un paquet dans le futur.
Comment ajouter un module local à mon environnement conda et le mettre à jour ou le regarder automatiquement lorsque je modifie quelque chose dans mysql.py
? Comment faire la même chose pour un paquet?
Je voudrais éviter de configurer un canal/référentiel local et simplement faire référence au dossier avec mysql.py
.
Pendant que les réponses précédentes font ce dont j'ai besoin, je veux simplement montrer ce que je vais utiliser à la place. Puisque c’était mon plan de tout apprendre sur les paquets conda ...
conda install -c conda-forge cookiecutter
Maintenant, allez dans le répertoire où vous voulez initialiser votre paquet, puis faites:
cookiecutter https://github.com/conda/cookiecutter-conda-python.git
Cela vous demandera des informations de base sur le paquet que vous voulez créer. Puis changez dans votre repo
cd myrepo
assure-toi conda-build
est installé, s'il n'est pas exécuté
conda install conda-build
Assurez-vous de régler le CONDA_BLD_PATH
comme mentionné dans anaconda - en utilisant un répertoire racine de conda-build différent - Stack Overflow . Ce sera le répertoire où vous pourrez trouver vos paquets, puis lancez:
conda build conda.recipe
pour construire votre paquet et nettoyer après vous avec
conda build purge
Lis
pour aider.
Indexez chaque plate-forme. Peut-être que quelqu'un peut confirmer que cette étape n'est pas nécessaire, car mes versions contiennent déjà le repodata.json
. Autrement:
conda index D:\CODE\condamychannel\win-64
Testez si le paquet peut être trouvé avec
conda search -c file:///D:\CODE\condamychannel --override-channels mypackage
ou ajouter le canal à la configuration directement (par environnement)
conda config --add channels file:///D:\CODE\condamychannel
activate myenv
et
conda install mypackage
Une fois que je change mypackage
, je lui donne un nouveau numéro de version dans meta.yaml
et setup.py
et construire le paquet avec conda build conda.recipe
. La mise à jour est tout simplement
conda update mypackage
Voyez si votre paquet fonctionne:
python
>>> import cli from mypackage
>>> cli.cli()
CLI template
Ce n'est peut-être pas la meilleure façon, mais je n'ai pas trouvé de tutoriel contenant toutes les étapes décrites ci-dessus.
Si vous installez le paquet conda build (et que vous avez un paquet, pas seulement un script), vous pouvez l'installer en mode "éditable":
conda develop .
(en partant du répertoire avec votre script). Ceci est très similaire au mode "editable" de pip
pip install -e .
L’une ou l’autre approche vous permet de désinstaller des paquets avec
conda develop -u .
ou
pip uninstall .
Si vous ne disposez que d'un script (pas d'un package), vous pouvez modifier ou définir la variable d'environnement PYTHONPATH
pour inclure le répertoire avec le script.
J'avais une fonction wrapper que je devais appeler plusieurs fois sur différents scripts. Alors, j'ai copié ce fichier wrappers.py
Dans le paquet de site Anaconda dossier. Sur mon ordinateur, il se trouvait à: C:\ProgramData\Anaconda3\Lib\site-packages . Ensuite, chaque fois que j'avais besoin de wrappers.py
, Je l'importais simplement dans mes scripts, comme ceci:
import wrappers
Si vous voulez vous assurer que l'importation a réussi, vous pouvez sélectionner Anaconda comme environnement de développement dans votre IDE), puis appeler Intellisense après l'importation: from wrappers import (intellisense suggestions)
. Ou vous pouvez aussi utiliser IDLE:
>>> import wrappers
>>>(if you get this Prompt, this means the import was successful).
L'intégration Conda n'est possible que si vous créez chaînes personnalisées . C'est parce que conda recherche les paquets aux emplacements suivants (en fonction de votre système d'exploitation) et pour dire à conda de rechercher votre module à certains emplacements, vous devez installer conda-build
Pour créer un canal personnalisé:
- https://repo.continuum.io/pkgs/main/win-64
- https://repo.continuum.io/pkgs/main/noarch
- https://repo.continuum.io/pkgs/free/win-64
- https://repo.continuum.io/pkgs/free/noarch
- https://repo.continuum.io/pkgs/r/win-64
- https://repo.continuum.io/pkgs/r/noarch
- https://repo.continuum.io/pkgs/pro/win-64
- https://repo.continuum.io/pkgs/pro/noarch
- https://repo.continuum.io/pkgs/msys2/win-64
- https://repo.continuum.io/pkgs/msys2/noarch
Si vous voulez éviter de créer un repo/canal, alors une simple importation comme ci-dessus devrait faire l'affaire. De plus, si vous apportez des modifications à votre module et le sauvegardez, vous aurez toujours le dernier import
dans vos scripts.