2016-02-26 54 views
9

Sto installando un pacchetto utilizzando dependency_links. Sembra installare il pacchetto, ma interrompe la funzionalità di freeze del pip (che probabilmente significa che c'è un problema di installazione più profondo.) Voglio poter scaricare il pacchetto da un server personalizzato senza alcuna configurazione richiesta al di fuori di eseguire setup.py.interruzione `pip freeze` con installazione pacchetto

Questo è il mio setup.py di file:

from setuptools import setup 

    setup(
     name='package' 
     ,version='0.1.0' 
     ,packages=['foo', 
       'bar' 
       ] 
     ,long_description='' 
     ,url='https://github.com/myrepo' 
     ,install_requires=['numpy>=1.9.2' 
         ,'some_package' 
         ] 
     ,dependency_links=[ 
      "http://custom_server/packages/some_package-0.1.0.tar.gz" 
     ]    
) 

Installare sembra funzionare bene, ma se provo e faccio funzionare pip_freeze ottengo l'errore sotto.

pip freeze 

Error [Errno 20] Not a directory: '/Users/abc/anaconda/lib/python2.7/site-packages/some_package.egg' while executing command git rev-parse 
Exception: 
Traceback (most recent call last): 
    File "/Users/myname/anaconda/lib/python2.7/site-packages/pip/basecommand.py", line 209, in main 
    status = self.run(options, args) 
    File "/Users/myname/anaconda/lib/python2.7/site-packages/pip/commands/freeze.py", line 70, in run 
    for line in freeze(**freeze_kwargs): 
    File "/Users/myname/anaconda/lib/python2.7/site-packages/pip/operations/freeze.py", line 49, in freeze 
    dependency_links 
    File "/Users/myname/anaconda/lib/python2.7/site-packages/pip/__init__.py", line 235, in from_dist 
    if dist_is_editable(dist) and vcs.get_backend_name(location): 
    File "/Users/myname/anaconda/lib/python2.7/site-packages/pip/vcs/__init__.py", line 75, in get_backend_name 
    if vc_type.controls_location(location): 
    File "/Users/myname/anaconda/lib/python2.7/site-packages/pip/vcs/git.py", line 266, in controls_location 
    on_returncode='ignore') 
    File "/Users/myname/anaconda/lib/python2.7/site-packages/pip/vcs/__init__.py", line 322, in run_command 
    spinner) 
    File "/Users/myname/anaconda/lib/python2.7/site-packages/pip/utils/__init__.py", line 677, in call_subprocess 
    cwd=cwd, env=env) 
    File "/Users/myname/anaconda/lib/python2.7/subprocess.py", line 710, in __init__ 
    errread, errwrite) 
    File "/Users/myname/anaconda/lib/python2.7/subprocess.py", line 1335, in _execute_child 
    raise child_exception 
OSError: [Errno 20] Not a directory: '/Users/myname/anaconda/lib/python2.7/site-packages/some_package.egg' 
+0

So che ha a che fare con il fatto che si tratta di un file egg piuttosto che di una directory egg ma non so come risolverlo. – Chris

+0

prova ad aggiungere # egg = some_package-0.1.0 al tuo link di dipendenza – irqed

+0

'http: // custom_server/packages/some_package-0.1.0.tar.gz # egg = some_package-0.1.0' mi ha dato lo stesso bug quando ho eseguire il congelamento dei pip. L'installazione funziona ancora, si interrompe semplicemente il congelamento dei tubi:/ – Chris

risposta

4

pip install . con --extra-index-url e --trusted-host fa il trucco, anche se si desidera installare in modalità modificabile si può fare pip install -e ..

si potrebbe ancora voglia di dare un'occhiata a dependency_links sfogliare e l'opzione zip_safe: https://pythonhosted.org/setuptools/setuptools.html#dependencies-that-aren-t-in-pypi https://pythonhosted.org/setuptools/setuptools.html#setting-the-zip-safe-flag https://github.com/irqed/octokit.py/blob/master/setup.py#L51

Tra l'altro è possibile specificare --extra-index-url e --trusted-host nel file di requirements.txt pip pure.