我直接在git树中有以下目录,我想通过将其基目录添加到PYTHONPATH来引用,而无需打包和安装模块。
一旦添加到PYTHONPATH,如果内部cstruct目录被拉出一个级别,那么因为它有一个 init .py文件,所以只做一个
是微不足道的import cstruct
但是,由于我还保留了设置文件,因此需要嵌套另一个级别,这使得上面的导入无效。
有没有办法解决这个问题?我正在考虑在基础目录中构建一些 init .py,它可以“拉出”内部cstruct或以某种方式将最外面的cstruct添加到python路径但是我不知道如何去做
为了清楚起见,我在这里使用cstruct作为我从github中提取的一个例子但是我有六个这样的库我真的很想在我的开发环境中引用ad-hoc而不需要打包+安装。
.
├── cstruct
│ ├── cstruct
│ │ ├── examples
│ │ │ ├── fdisk.py
│ │ │ └── __init__.py
│ │ ├── __init__.py
│ │ └── tests
│ │ ├── __init__.py
│ │ └── test_cstruct.py
│ ├── LICENSE
│ ├── MANIFEST.in
│ ├── mbr
│ ├── README.md
│ ├── setup.cfg
│ └── setup.py
答案 0 :(得分:0)
我不知道你为什么不在virtualenv中安装它,但鉴于你的具体问题,为什么你不能简单地做你最初建议的并将外部目录添加到PYTHONPATH?
您可以从shell中执行此操作:
export PYTHONPATH=$PYTHONPATH:/path/to/outer/cstruct
或来自Python内部:
import sys
sys.path.insert(0, '/path/to/outer/cstruct')