我们有一堆代码,这些代码在特殊的本地执行中被大量抛出。我已经开始重构它,并希望分阶段完成。
作为第一步,我想将我们的代码放入一个很好的包结构中:
Project/
|
|-- project/
| |-- code/
| | |-- __init__.py
| | |-- horribleness_with_importables_but_also__main__.py
| | |-- more_horribleness.py
| |-- __init__.py
|
|-- setup.py
|-- README.md
因此,我可以在setup.py
和__init__.py
中执行相应的操作,以便$ pip install git+[my_project]
按预期工作,并使from project.more_horribleness import *
按预期工作。
但是,我现在已经将所有本地导入更改为相对,并将导入放入__init__.py
s并且让你做什么让pip工作...所以为了避免任何重大问题,现在,我也希望能够克隆回购并以某种方式调用$ python horribleness_with_importables_but_also__main__.py
并让它像以前一样工作。有没有一种很好的方法可以在我新发现的pip包结构中运行我的python if __name__ == "__main__":
?
答案 0 :(得分:1)
鉴于您的软件包是纯Python,关键部分是
/path/to/Project
位于Python路径中,可以通过PYTHONPATH
环境变量或sys.path
的操作。但是,这不是我建议的解决方案。由于您已经小心翼翼地使您的包装可以安装,我建议
pip install --user -e .
:这会在~/.local/lib/pythonVERSION/site-packages
中对您的项目进行符号链接,但会考虑对您的项目进行编辑。project/__main__.py
中的主要功能,以便可以从命令行执行它python -m project
或使用console_scripts
选项来获取可执行文件安装https://packaging.python.org/distributing/#console-scripts PATH
醇>