如何点子安装进行开发?

时间:2019-01-12 00:49:07

标签: python django setuptools

我正在尝试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-linkeasy-install.pth使其指向src来解决所有问题。

是否有一个配置参数可以传递给requirements.txt以使其正常工作?还是我必须调整项目布局以适合需要?

2 个答案:

答案 0 :(得分:0)

由于您要修改它,为什么不克隆存储库。为了使您的口译员能够找到和使用它,您可以使用以下选项:

  • 修改您的sys.path,将路径添加到仓库
  • 在项目目录下创建一个指向链接的符号链接

通过这种方式,您不必每次修改pip install

答案 1 :(得分:0)

如上所述,最好的方法是克隆存储库。这适用于大多数软件包,因为pip可能会构建扩展,并在安装期间执行其他操作,这些操作旨在使用模块进行生产而不是编辑源代码。

为了解释为什么选择这种结构,我希望能够在Django项目中开发该软件包。正如Django docs所说,该应用程序应放置在一个单独的目录中,这可使setuptools正确安装该软件包。我无法找到使它能够继续在项目中运行的方法,因此,构建脚本会将文件移动到合适的目录并生成包。