Python3 framework with own packages and shared with git: How to handle sys.path and __init__.py files?
我开始在python 3中构建数据处理框架。目标是开发自己的包并编写示例代码来使用包。该框架将由Git与其他研究人员共享(任何可能开发的)。
在多台计算机上处理搜索路径的最佳方法是什么?目录中的uuu init_uuuu.py文件应该是什么样的?
我正在考虑使用sys.path.append(os.getcwd())或sys.path.append("…")添加相对于主目录的sys.path(python:相对于当前运行脚本添加到sys.path的最佳方法)。我不知道这是不是一个好的方法来导入不同的绝对路径和操作系统的不同机器的顶级之外。(超顶级包错误/问题:相对导入中的超顶级包错误)
基本目录结构可能是(稍后我将添加更多包和处理函数):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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 |
有一个标准的包布局。如果你遵循这一点,你可以在不需要触摸
使用此网站上的资源并学习安装工具。
https://packaging.python.org/tutorials/packaging-projects/
更新
在开发过程中,您可以使用虚拟环境。首先创建一个:
1 | $ virtualenv venv |
使用
1 | $ venv/bin/pip install -e yourproject.git |
当您在虚拟环境中启动python时,导入应该可以工作。
1 2 3 | $ venv/bin/python >>> import preprocessing.filters >>> |