如何使导入在python2.7目录结构中工作?

2024-04-25 07:37:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试将自定义模块和函数导入到Python脚本中,并且尝试了相对导入和绝对导入,但我确实无法使其工作。我知道这个问题在这里被问过很多次,但试图回答这些问题却无济于事。。。假设我创建了一个包含函数的文件,职能部门,在子目录中。它包含函数func1和func2。我想把这些函数导入我的主程序文件,我们称之为程序副本. 以下是我的目录结构的简化版本:

   C:/Project
     __init__.py
            /Demo
                 __init__.py
                 prog.py
            /Functions
                 __init__.py
                 func.py

我的__init__.py文件是空的。我尝试过以不同的方式将func1和func2导入prog.py,但都不起作用。使用from .Functions.func import func1(一个或两个点)可以

ValueError: Attempted relative import in non-package

没有前导点给我一个“没有模块命名…”错误,有点出乎意料。我也试过from Project.Functions.func import func1得到同样的错误。你知道吗

我不是用__init__.py将它定义为一个包吗?我需要在这些文件中写些什么吗,或者在某处使用__main__.py?你知道吗

我使用64位Windows7,所以我在命令提示符下使用

python prog.py

在“Demo”文件夹中。否则我就不方便了。我尝试为python命令使用标志并在顶层运行它,但仍然不起作用(如果需要,我将重新创建它以复制错误消息)。因为我在Windows中工作,所以我尝试将Project及其所有子文件夹添加到Python path环境变量中,但没有效果。也许我可以使用sys.path.append来“手动”添加每个函数,但考虑到文件的实际数量,这不是很实际。你知道吗

我很感激任何帮助,因为我已经被困在这个我不知道多久了。抱歉,还有一个Python 2.7导入问题。。。希望我提供了足够的信息。提前谢谢!你知道吗


Tags: 模块文件函数frompyimportprojectinit
1条回答
网友
1楼 · 发布于 2024-04-25 07:37:53

你知道吗系统路径附加会解决的。我更喜欢(你尝试过的)ENV变量PYTHONPATH,你可以把它们放在libs所在的地方,然后python也会在那里搜索它们。。你知道吗

你说你添加了这个,但是你的shell选择了这个改变吗?你看到变量设置正确吗

import os
print os.environ

什么?你知道吗

相关问题 更多 >