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

已在所有文件夹创建__init__.py,Python导入语句仍无法工作?

问题解决方法

你的核心问题是Python的模块搜索路径里没有包含basepackage所在的桌面目录,导致无法找到顶层包package1或basepackage。另外你代码里还有个拼写错误:pipy应该是p1py。下面给你几种可行的解决办法:

方法一:临时在脚本中添加路径(快速生效)

在p11py.py的最开头添加以下代码,把桌面路径加入Python的模块搜索路径:

import sys
from pathlib import Path

# 计算basepackage所在的桌面路径
desktop_dir = Path(__file__).resolve().parent.parent.parent
sys.path.append(str(desktop_dir))

# 正确导入并调用函数
from package1.p1.p1py import func1
func1()

# 或者用别名的方式
import package1.p1.p1py as p1_module
p1_module.func1()

解释:Path(__file__).resolve()获取当前脚本的绝对路径,连续三次parent就能回到桌面目录(因为你的脚本在basepackage\package1\p11\下),把这个路径加入sys.path后,Python就能找到package1这个包了。

方法二:设置PYTHONPATH环境变量(永久生效)

把桌面路径添加到系统的PYTHONPATH环境变量中,这样所有Python脚本都能识别到basepackage下的包:

  • Windows系统:
    1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
    2. 在「系统变量」栏点击「新建」,变量名填PYTHONPATH,变量值填C:\Users\shiv\Desktop
    3. 保存后重启你的IDE或终端,之后直接用以下代码导入即可:
      from package1.p1.p1py import func1
      func1()
      

方法三:将basepackage作为可编辑包安装(适合长期项目)

如果这是一个长期维护的项目,推荐把basepackage安装为可编辑包,这样无论你在哪个路径运行脚本都能正常导入:

  1. 在basepackage目录下创建setup.py文件,内容如下:
    from setuptools import setup, find_packages
    
    setup(
        name="basepackage",
        version="0.1.0",
        packages=find_packages(),
    )
    
  2. 打开终端,切换到basepackage目录(cd C:\Users\shiv\Desktop\basepackage),运行以下命令:
    pip install -e .
    
  3. 之后你就可以在任何位置的脚本中直接导入:
    from package1.p1.p1py import func1
    func1()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:16:01