You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python项目中无法从selectthis文件导入函数的原因咨询

问题原因及解决办法

1. 模块搜索路径未包含essentials目录

Python导入模块时,只会在sys.path列表里的目录查找。你用os.chdir()切换了工作目录,但这不会自动把当前目录加入sys.path——毕竟requires.py不在essentials目录里,脚本运行时sys.path默认包含的是requires.py所在的父目录,而非essentials。

解决办法:
不用切换目录,直接把essentials目录添加到sys.path:

import os
import sys

working_dir = os.getcwd()  # 修正拼写错误:wokring_dir → working_dir
essential_path = os.path.join(working_dir, "essentials")
sys.path.append(essential_path)

from selectthis import printthis
printthis()

2. 路径拼接的跨平台问题

你用字符串拼接路径的写法(wokring_dir)+essential_path,在Linux/macOS下会因为路径分隔符不匹配出错,应该用os.path.join()(就是你注释掉的那行,它能自动适配不同系统的路径分隔符)。

3. 拼写错误

代码里的wokring_dir少了一个字母k,虽然当前可能不影响目录获取,但后续逻辑容易出问题,建议修正为working_dir。

4. 可选:确保essentials被识别为包

如果你的Python版本低于3.3,需要在essentials文件夹里创建一个空的__init__.py文件,让Python把它当成可导入的包。Python3.3+支持命名空间包,不需要这个文件,但加上也没坏处。

更规范的导入方式

如果你的文件夹结构是:

项目根目录/
├─ requires.py
└─ essentials/
   ├─ selectthis.py
   └─ __init__.py  # Python3.3+可选

可以直接用包导入的方式,不用改路径或切换目录:

from essentials.selectthis import printthis
printthis()

只要你在项目根目录运行python requires.py,脚本所在的根目录会自动加入sys.path,就能正常导入。

内容的提问来源于stack exchange,提问作者Coding4Life

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 04:06:17