从Python

时间:2016-04-18 18:47:02

标签: python python-3.x

我把问题放在下图中:

enter image description here

修改 接下来的问题是:

如何让script_A1从script_B2导入函数?

以前曾提出过类似的问题。但大多数答案都建议将模块/脚本/包(无论如何)添加到PATH变量中。例如:

sys.path.append('...')

但是将模块添加到PATH变量只是觉得错误。我不想以任何方式改变我的系统。当我的应用程序关闭时,我希望我的Python环境干净且不受影响。我担心在我的系统上添加不受控制的模块到PATH变量会导致后来的麻烦。

感谢您帮助我: - )

3 个答案:

答案 0 :(得分:5)

您可以使用将顶部文件夹添加到路径的技巧:

import sys
sys.path.append('..')
import folderB.something

如果您愿意,也可以使用imp.load_source

答案 1 :(得分:0)

将它放在script_A1的顶部;

from folderB.script_B2 import YourClass as your_class

答案 2 :(得分:0)

我想我解决了这个问题。

通过以下方式,您可以将父目录附加到PATH。把它放在script_A1

的顶部
import sys
import os
myDir = os.path.dirname(os.path.abspath(__file__))
parentDir = os.path.split(myDir)[0]
if(sys.path.__contains__(parentDir)):
    print('parent already in path')
    pass
else:
    print('parent directory added')
    sys.path.append(parentDir)

# Now comes the rest of your script

您可以通过打印来验证父目录myProject是否确实已添加到PATH中:

    print(sys.path)

由于父目录myProject现在是PATH的一部分,因此您可以从其任何子目录中导入脚本/模块/任何内容。这是从script_B2导入folder_B的方式:

import folder_B.script_B2 as script_B2

关闭应用程序后,您可以验证Python环境是否已恢复到其初始状态。只需再次打印PATH并检查您附加的目录是否已经消失。