pip freeze 捕获的包名似乎来自 Python 包索引,但实际并非如此,需提供完整路径
我从GitHub上安装了一个包:
pip install -e git+http://github.com/un33k/django-uuslug.git#egg=django-uuslug
然后我执行了:
pip freeze > req.txt
我得到了:
django-uuslug==0.1
现在如果我执行 pip install -r req.txt
,我会收到一个 找不到包
的错误,这个错误是因为 django-uuslug 不在 pypi 上。
为什么 freeze 没有记住安装时给出的完整路径呢?
2 个回答
1
我解决了这个问题,但我也不知道具体是怎么做到的,我只是改了setup.py文件。
pip install -e git+http://github.com/un33k/django-uuslug.git#egg=django-uuslug
如果你遇到类似的问题,看到这个问题的时候,可以看看上面那个包里的setup.py文件。也许你能告诉我我是怎么解决的。我只是稍微调整了一下内容。
1
我也遇到过同样的问题。我觉得这个问题出现在包放在子目录里时(比如说放在src文件夹里)。这里有一个修复补丁,对我来说这个补丁解决了问题。
--- a/setup.py
+++ b/setup.py
@@ -11,13 +11,9 @@ setup(
license = 'BSD',
description = "MAC address model and form fields for Django apps.",
long_description = read('README.rst'),
-
author = 'Ryan Nowakowski',
author_email = 'me@example.com',
-
- packages = find_packages('src'),
- package_dir = {'': 'src'},
-
+ packages = ['macaddress'],
install_requires = ['setuptools'],
requires = ['netaddr'],
#tests_requires = ['django'],