(Python) utilisez une bibliothèque localement au lieu de l'installer
Script:
J'ai écrit un script en python qui envoie parfois des tweets à twitter
Il n'utilise qu'une seule bibliothèque appelée: tweepy
après avoir installé la bibliothèque, cela fonctionne, très bien.
Problème:
Je voudrais héberger le script sur un serveur où je n'ai pas de privilèges pour installer quoi que ce soit
Ce serait génial si je pouvais simplement l'inclure localement à partir du dossier dans lequel je l'ai.
En ce moment, tout ce que je dois inclure en haut de mon le fichier est:
import tweepy
Le dossier tweepy (a un fichier __init__.py
Que je crois important.
Question:
Comment puis-je utiliser cette bibliothèque sans l'installer?
fondamentalement, je veux remplacer: import tweepy
avec import local_folder/tweepy/*
Cela pourrait juste être le bon sens de python, mais je suis coincé!
4 réponses
EDIT: Cette réponse est obsolète. Vous devriez utiliser VirtualEnv . Si vous êtes allergique aux logiciels tiers pour une raison quelconque (dans ce cas, pourquoi installez-vous des bibliothèques?), il y a quelque chose appelé venv , qui est littéralement construit en python3, donc il n'y a AUCUNE excuse pour ne pas utiliser une sorte de virtualisation. (La plupart des personnes actives dans la communauté préfèrent VirtualEnv, cependant. Voir https://stackoverflow.com/a/41573588/410889.)
VirtualEnv installe un interpréteur Python local, avec un dossier packages local et tout. En plus de résoudre entièrement le problème des privilèges administratifs, la caractéristique la plus importante de VirtualEnv est qu'il vous permet de garder vos environnements séparés. Si vous avez un projet qui a besoin de Foo version 2.3 et un autre qui a besoin de Foo version 1.5, vous ne pouvez pas les faire partager le même environnement; vous devez garder leurs environnements séparés avec VirtualEnv.
Il y en a quelques-uns possibilités:
Si vous savez déjà comment installer des modules Python, la configuration par défaut de distutils
inclut déjà une option d'installation par utilisateur. Il suffit d'exécuter python setup.py install --user
au lieu de python setup.py install
. C'est le plus simple, car cela ne nécessite pas l'ajout de code source.
Vous pouvez également exécuter le script avec le répertoire de tweepy
, comme le répertoire de travail courant.
Vous pouvez ajouter une variable d'environnement nommée PYTHONPATH à n'importe quel environnement (par exemple, le shell) que vous utilisez pour exécuter votre script, et faites-le contenir le chemin d'accès à tweepy
.
Si tout le reste échoue, et que vous voulez vraiment modifier votre code source, vous devrez modifier sys.path
. {[6] } est une liste d'emplacements où Python recherchera du code.
Dans votre code, écrivez:
import sys
sys.path.append("/path/to/your/tweepy/directory")
import tweepy
, Vous devez installer un virtual environnement python ainsi, vous n'avez jamais à vous soucier d'avoir des privilèges d'administrateur, et vous pouvez installer ce que vous voulez.
Aussi, si vous voulez l'utiliser fréquemment, comme dans le script . Un moyen facile d'exporter "PYTHONPATH" dans le fichier bashrc/zshrc et de donner un chemin vers le répertoire contenant votre code .
Par exemple:
export PYTHONPATH=$PYTHONPATH:$HOME/path/to/module
De Cette façon, vous n'avez pas besoin de faire sys.chemin d'accès à chaque fois que vous redémarrez .
Codage Heureux
Solution simple et propre:
import sys
sys.path.insert(0, '/absolute/path/to/package')
import some.cool.package
some.cool.package.doCoolStuff()
La réponse ci-dessus avec 'append' ne fonctionne pas avec les paquets qui sont également installés