从特定文件夹导入模块

Exc*_*bur 3 python

我有一个名为的文件夹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/...什么的.

所以我的问题是如何从特定文件夹导入模块?

Asw*_*esh 7

将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)


Luk*_*uke 5

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的答案是一个更好的长期解决方案.