0

我开始在 Python 3 中构建数据处理框架。目标是开发自己的包并编写示例代码来使用这些包。该框架将通过 git 与其他研究人员共享(任何可能开发的)。

处理多台计算机上的搜索路径的最佳方法是什么? __init__.py文件在目录中的外观应该如何?

我正在考虑使用sys.path.append ( os.getcwd () )或sys.path.append ( “..”)我不知道这是否是在具有不同绝对路径和操作系统的不同机器上导入超出顶级的好方法。(超出顶级包错误/问题:在相对导入中超出顶级包错误

基本的目录结构可能是(我稍后会添加更多的包和处理函数):

main_directory/
main_directory/__init__.py
main_directory/packages/
main_directory/packages/__init__.py
main_directory/packages/preprocessing/
main_directory/packages/preprocessing/filters.py    #implementation of multiple classes: e.g. fillter1 and filter2
main_directory/packages/preprocessing/__init__.py
main_directory/packages/postprocessing/
main_directory/packages/postprocessing/filters.py   #implementation of multiple classes: e.g. fillterA and filterB
main_directory/packages/postprocessing/__init__.py
main_directory/examples/
main_directory/examples/easy_example.py #file with examples to use the filters
main_directory/your_code/
main_directory/your_code/your_code.py   #file with your code to use the filters
4

1 回答 1

1

有一个标准的包装布局。如果您遵循这一点,您可以部署您的程序而无需触摸sys.path.

使用本网站上的资源并学习 setuptools。

https://packaging.python.org/tutorials/packaging-projects/

更新

在开发过程中,您可以使用虚拟环境。首先创建一个:

$ virtualenv venv

安装你的包-e会创建一个指向你的目录的链接。

$ venv/bin/pip install -e yourproject.git

当您在虚拟环境中启动 python 时,您的导入应该可以工作。

$ venv/bin/python
>>> import preprocessing.filters
>>>
于 2018-07-27T10:29:43.983 回答