我正在尝试pip install
之外的本地site-packages
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以使其正常工作?还是我必须调整项目布局以适合需要?
答案 0 :(得分:0)
由于您要修改它,为什么不克隆存储库。为了使您的口译员能够找到和使用它,您可以使用以下选项:
sys.path
,将路径添加到仓库通过这种方式,您不必每次修改pip install
。
答案 1 :(得分:0)
如上所述,最好的方法是克隆存储库。这适用于大多数软件包,因为pip可能会构建扩展,并在安装期间执行其他操作,这些操作旨在使用模块进行生产而不是编辑源代码。
为了解释为什么选择这种结构,我希望能够在Django项目中开发该软件包。正如Django docs所说,该应用程序应放置在一个单独的目录中,这可使setuptools正确安装该软件包。我无法找到使它能够继续在项目中运行的方法,因此,构建脚本会将文件移动到合适的目录并生成包。