【发布时间】:2019-06-06 22:13:07
【问题描述】:
我正在尝试在 site-packages 之外的本地 pip install 一个 GitHub 项目,以便我可以修改它等。
我已将-e git+git@github.com:Starcross/django-starcross-gallery.git#egg=gallery 添加到我的requirements.txt 中,这使我的项目布局的相关部分如下所示:
/home/mat/venv/proj/
└── src
└── gallery
├── admin.py
├── apps.py
├── build.sh
├── django_starcross_gallery.egg-info
│ ├── dependency_links.txt
│ ├── PKG-INFO
│ ├── requires.txt
│ ├── SOURCES.txt
│ └── top_level.txt
├── forms.py
├── __init__.py
├── LICENSE
├── MANIFEST.in
├── models.py
├── README.rst
├── settings.py
├── setup.py
├── signals.py
├── static
│ └── ...
├── templates
│ └── ...
├── tests
│ └── ...
├── tests.py
├── urls.py
└── views.py
据我所知,问题在于这些 .egg-link 和 .pth 文件的层次太深了:
lib/python3.6/site-packages/django-starcross-gallery.egg-link:
/home/mat/venv/proj/src/gallery
.
lib/python3.6/site-packages/easy-install.pth:
/home/mat/venv/proj/src/gallery
我可以通过将gallery 更深一层或将django-starcross-gallery.egg-link 和easy-install.pth 更改为指向src 来解决所有问题。
我可以在 requirements.txt 中传递一个配置参数以使其正常工作吗? 还是我必须调整项目布局以适应?
【问题讨论】:
-
据我所知,问题出在包本身,因为它没有有效的 python 项目结构,因此没有使用 python 工具打包(而是使用自定义构建脚本)。如果您克隆 repo 并运行
python setup.py egg_info以生成包元数据,您将看到没有包含任何源(因为没有要包含的包)。由于pip显然不会在安装时猜测并运行自定义构建脚本,我认为您没有任何机会通过使用pip选项来解决它,除非包维护者更改了项目结构。
标签: python django setuptools