我有遵循以下准则的github项目MYMODULE
结构:
README.rst
LICENSE
sample/__init__.py
sample/core.py
sample/helpers.py
我的项目的核心位于存储sample
的{{1}}文件夹中。
我希望能够使其保持可访问状态,包括PYTHONPATH中的__init__.py
文件夹,但是,如果我sample
在PYTHONPATH中列出的文件夹中的项目,我将拥有另一个文件夹git -clone
MYMODULE
文件夹中的sample
文件之前,因此我将无法导入它。我知道,如果我将样本文件夹上移一个级别,我将能够访问该模块,但这将损害与GitHub存储库的同步。
是否有解决此问题的指南或最佳做法?
我尝试使用git 稀疏签出,但这不能解决问题,因为它会将所选文件夹存储在父文件夹中。
答案 0 :(得分:1)
git
是开发工具,但不是分发/部署。要安装Python软件包,您应该安装setup.py
。然后,您可以使用install the package directly from git pip
,也可以自己克隆存储库并使用pip install -e .
甚至使用python setup.py install
在开发过程中,您可以克隆代码并将$PYTHONPATH
指向当前目录:export PYTHONPATH=$(pwd)
但是最佳实践是virtualenv
。为每个软件包创建setup.py,为每个单独的项目创建一个virtualenv,使用pip install -e .