Python 2.7无法从独立分区导入自定义模块问题求助
解决Python跨分区导入模块失败的问题
别担心,Python完全支持从其他分区导入模块,你的问题和分区无关,核心是Python的模块搜索路径没包含D盘的scripts目录——系统的PATH环境变量管的是系统找可执行文件的路径,而Python找模块看的是sys.path列表。
下面给你几个可行的解决办法:
1. 临时解决:在脚本开头添加路径
直接在neue_aufgabe.py的最顶部加入这段代码,把D盘的scripts目录手动加入Python的搜索路径:
import sys import os # 如果脚本直接放在D:\scripts下,直接添加该路径即可 sys.path.append("D:\\scripts") # 要是脚本在scripts的子目录里,可以用下面的代码自动获取上级目录 # script_dir = os.path.dirname(os.path.abspath(__file__)) # sys.path.append(os.path.dirname(script_dir))
这种方法只对当前脚本生效,适合临时测试。
2. 永久解决:设置PYTHONPATH环境变量
如果想让所有Python脚本都能自动找到D盘的模块,就设置PYTHONPATH:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」区域点击「新建」,变量名填
PYTHONPATH,变量值填D:\scripts - 重启你的命令行窗口或者IDE,之后Python会自动把这个目录加入
sys.path
3. 检查目录结构与包标识
还要确认你的目录结构是正确的,并且每个包目录下都有__init__.py文件(Python 2.7必须要有,空文件就行):
D:\scripts\ CustomUtils\ __init__.py UI\ __init__.py PyQtUI.py neue_aufgabe.py
如果缺少__init__.py,Python会把这个目录当成普通文件夹,而不是可导入的包。
验证方法
你可以打开Python解释器,输入下面的命令,看看D:\scripts是否在输出的列表里:
import sys print(sys.path)
如果能看到这个路径,说明设置成功了,再运行脚本应该就能正常导入模块了。
内容的提问来源于stack exchange,提问作者Niko




