如何在项目中使用Python包

时间:2016-05-03 16:57:15

标签: python module package

我有以下目录结构:

├── DynamicProgramming
│   ├── 0-1_kp_problem.py
│   ├── b.py
│   ├── largest_contigous_subarray.py
│   ├── longest_common_substring.py
│   ├── min_change_for_given_money.py
│   ├── optimal_matrix_chain.py
│   ├── Readme.md
│   └── wis.py
├── helper
│   ├── a.py
│   └── __init__.py
└── Readme.md

helper目录包含将在整个代码中使用的库函数。如何从DynamicProgramming内的脚本导入帮助程序包而不将其添加到路径?

编辑=>

我无法在helper内移动dynamicProgramming目录,因为可以有多个目录使用它。

2 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

from ..helper import a

See python docs on packages.

答案 1 :(得分:2)

如果您从项目根文件夹运行代码,则可能会成功使用import helperimport helper.a。如果没有,则必须将当前目录添加到PYTHONPATH:

$ export PYTHONPATH="."

更好地使用项目setup.py

您可以将项目创建为python包,而不是使用PYTHONPATH(有时可能是棘手的事情)。

您将setup.py添加到项目根目录中,指定该包的属性并从中构建它。

setup.py可以同时定义多个包,但通常更常见 只用一个。为此,最好移动helper包 进入DynamicProgramming结构并从那里导入。

搜索setup.py python打包教程,需要进行一些研究,但会收回。