我有一个名为的文件夹Script,里面有temp.py脚本.我的临时脚本从被调用的子文件夹导入模块lib.
Lib文件夹里面有空__init__.py和我的parent_computer_test.py脚本.
在我的temp.py脚本中是以下代码:
import lib.parent_computer_test as parent_computer_test
parent_computer_test.mainChunk()
parent_computer_test.splitChunks()
Run Code Online (Sandbox Code Playgroud)
我设法从子文件夹导入模块没有任何更大的问题.
这个工作流程/脚本工作正常,但由于特定原因,我的lib文件夹必须在我的计算机上的其他位置.有一个很长的故事,但它必须是那样的.
长话短说.我希望我temp.py的/Script文件夹从文件夹lib(或任何其他名称)导入模块parent_computer_test.py,但同时此文件夹不是子文件夹/Script- 因此它位于计算机的其他位置.它可以是C:/development/...什么的.
所以我的问题是如何从特定文件夹导入模块?
将lib文件夹的路径附加到SYS PATH环境变量.然后它可以从任何地方导入
import os, sys
lib_path = os.path.abspath(os.path.join('..', '..', '..', 'lib'))
sys.path.append(lib_path)
import mymodule
Run Code Online (Sandbox Code Playgroud)
import imp
yourModule = imp.load_source('yourModuleName', '/path/to/yourModule.py')
foo = yourModule.YourFunction("You", "get", "the", "idea.")
Run Code Online (Sandbox Code Playgroud)
我意识到这是一个特例,但总的来说,我会避免这样的事情.当你使用绝对路径时,事情会变得很难看,特别是如果你移动东西,我只会将它用于一次性脚本或不会发生很大变化的系统.
编辑:Aswin的答案是一个更好的长期解决方案.