Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在项目中使用Python包_Python_Module_Package - Fatal编程技术网

如何在项目中使用Python包

如何在项目中使用Python包,python,module,package,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 ├

我有以下目录结构:

├── 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
中,因为可以有多个目录使用它。

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

$ export PYTHONPATH="."
更好地使用project
setup.py
不要玩
PYTHONPATH
(有时会是棘手的事情),您应该将您的项目创建为python包

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

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


搜索
setup.py
python打包教程,这需要一些研究,但会有回报。

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

$ export PYTHONPATH="."
更好地使用project
setup.py
不要玩
PYTHONPATH
(有时会是棘手的事情),您应该将您的项目创建为python包

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

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


搜索
setup.py
python打包教程,这需要一些研究,但会有回报。

您可以使用以下内容:

from ..helper import a

您可以使用以下内容:

from ..helper import a

是的,但我只能这样做,如果我在其中使用的文件是一个包,它本身听起来像
helper
目录包含一些常见的功能,除了
DynamicProgramming
之外,还可以从其他地方使用这些功能。在这种情况下,也许您应该考虑将“helper”目录添加到
PYTHONPATH
。如果您使用的是虚拟环境,那么在激活/停用虚拟环境时,您可以轻松地将
helper
目录添加/删除到
PYTHONPATH
。然后你可以简单地在导入中使用绝对路径。是的,但我只能这样做,如果我在其中使用的文件是一个包,它本身听起来像
helper
目录包含一些除了
DynamicProgramming
之外还可以从其他地方使用的常见功能。在这种情况下,也许您应该考虑将“helper”目录添加到
PYTHONPATH
。如果您使用的是虚拟环境,那么在激活/停用虚拟环境时,您可以轻松地将
helper
目录添加/删除到
PYTHONPATH
。然后,您可以简单地在导入中使用绝对路径。