如何在项目中使用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="."
更好地使用projectsetup.py
不要玩PYTHONPATH
(有时会是棘手的事情),您应该将您的项目创建为python包
将setup.py
添加到项目根目录中,指定该包的属性并从中构建它
setup.py
可以一次定义多个包,但通常更频繁
只使用一个。为此,最好移动helper
包
进入DynamicProgramming
结构并从那里导入
搜索
setup.py
python打包教程,这需要一些研究,但会有回报。如果从项目根文件夹运行代码,则使用import helper
或import helper.a
可能会成功。如果没有,则必须将当前目录添加到PYTHONPATH:
$ export PYTHONPATH="."
更好地使用projectsetup.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
。然后,您可以简单地在导入中使用绝对路径。