Risposte:
Si, puoi. Puoi installare un pacchetto da un tarball o una cartella, sul web o sul tuo computer. Per esempio:
pip install https://pypi.python.org/packages/source/r/requests/requests-2.3.0.tar.gz
wget https://pypi.python.org/packages/source/r/requests/requests-2.3.0.tar.gz
pip install requests-2.3.0.tar.gz
tar -zxvf requests-2.3.0.tar.gz
cd requests-2.3.0
pip install .
È possibile eliminare la requests-2.3.0
cartella.
pip install -e .
Questo installa il pacchetto in modalità modificabile . Qualsiasi modifica apportata al codice verrà immediatamente applicata in tutto il sistema. Ciò è utile se si è lo sviluppatore del pacchetto e si desidera verificare le modifiche. Significa anche che non è possibile eliminare la cartella senza interrompere l'installazione.
python setup.py test
setup.py test
, per favore?
setup.py
dietro le quinte. Se voglio che le persone siano in grado di installare il mio pacchetto con pip, devo creare un setup.py
file.
pip install -e git+https://github.com/octocat/Hello-World.git#egg=Hello-World
. L'errore èNo such file or directory: 'c:\python\src\Hello-World\setup.py
È possibile pip install
un file forse python setup.py sdist
prima. Puoi anche pip install -e .
che è come python setup.py develop
.
pip install -e
accetta una directory come argomento, non il setup.py
file stesso. All'inizio non ho notato il periodo in pip install -e .
cui mi ha causato confusione :)
pip install -e .
posso installare ma con pip, come posso disinstallare dalla modalità modificabile?
Se sei davvero pronto per l'uso, python setup.py install
potresti provare qualcosa del genere:
from setuptools import setup, find_packages
from setuptools.command.install import install as InstallCommand
class Install(InstallCommand):
""" Customized setuptools install command which uses pip. """
def run(self, *args, **kwargs):
import pip
pip.main(['install', '.'])
InstallCommand.run(self, *args, **kwargs)
setup(
name='your_project',
version='0.0.1a',
cmdclass={
'install': Install,
},
packages=find_packages(),
install_requires=['simplejson']
)