Python `pip冻结与软件包安装中断

Python `pip冻结与软件包安装中断,python,pip,freeze,egg,Python,Pip,Freeze,Egg,我正在使用dependency\u链接安装软件包。它似乎可以安装软件包,但破坏了pip冻结功能(这可能意味着存在更深层次的安装问题)。我希望能够从自定义服务器下载软件包,而无需运行setup.py之外的任何设置 这是我的setup.py文件: from setuptools import setup setup( name='package' ,version='0.1.0' ,packages=['foo', 'bar

我正在使用dependency\u链接安装软件包。它似乎可以安装软件包,但破坏了pip冻结功能(这可能意味着存在更深层次的安装问题)。我希望能够从自定义服务器下载软件包,而无需运行
setup.py
之外的任何设置

这是我的
setup.py
文件:

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"
      ]               
  )
安装似乎工作正常,但如果我尝试运行
pip\u freeze
我会得到下面的错误

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'

pip安装。
使用
--额外索引url
--受信任的主机
完成安装,如果您想在可编辑模式下安装,也可以执行
pip安装-e.

您可能仍然希望查看列出依赖项链接和zip安全选项:


顺便说一句,您也可以在pip requirements.txt文件中指定
--额外索引url
--可信主机

我知道这与它是一个egg文件而不是egg目录有关,但我不知道如何修复它。请尝试将#egg=some_package-0.1.0添加到依赖项中链接<代码>http://custom_server/packages/some_package-0.1.0.tar.gz#egg=some_package-当我运行pip freeze时,0.1.0给了我同样的错误。安装仍然有效,只是打破了pip冻结。我想知道为什么它说“在执行命令git rev parse时”会发生错误,您确定不是从git repo安装的吗?如何安装该软件包
pip安装。
python setup.py安装
?此外,我们还可以尝试将
zip\u safe=False
添加到安装调用中。这在
pip安装中起到了作用--额外索引urlhttp://10.XXX.XXX.XXX:YYYY/ --可信主机10.XXX.XXX.XXX
。我不得不添加受信任的主机和额外的索引url选项,并通过pip而不是setup.py进行安装,但这样的安装不会破坏pip冻结。如果你作为一个答案张贴,我会接受它,给你的赏金。