这是我项目的 struct :

project (folder)
   main.py
   assets (folder)
      a.py
      b.py

当我将模块a导入模块b并运行main时.皮耶,我得了No module named 'a'分.

然而,如果我直接运行b.py,它就可以导入a.py.

a和b在同一个目录中,那么我缺少什么呢?FWIW,我正在使用Python 3.10.

主要的py:

import assets.b as bb

a、 py:

def func(x):
    print(x)

b、 py:

import a
a.func('hello')

推荐答案

更新你的b.py,如下所示

from . imp或t a 
a.func('hello')

from assets imp或t a
a.func('hello')

在第一种情况下,我们告诉解释器检入与文件相同的位置.在第二种情况下,我们只是使用完整路径.使用python 3.10.1和3.6进行测试

If you are using a folder structure, it is always best to fix you execution path and relative path acc或ding to your main.py. Implies running python3.10 b.py from assets is not acceptable.


在这种情况下,您希望该功能从assets文件夹执行python3.10 b.py操作,同时执行python3.10 main.py操作,然后按如下方式更新代码.

try:
  from . imp或t a
except:
  imp或t a

a.func('hello')

If you are sticking to a IDE like PyCharm then such err或s are easy to spot and fix.

Python相关问答推荐

Geopandas未返回正确的缓冲区(单位:米)

使用字典或列表的值组合

如何根据rame中的列值分别分组值

如何在GEKKO中使用复共轭物

什么是一种快速而优雅的方式来转换一个包含一串重复的列,而不对同一个值多次运行转换,

为罕见情况下的回退None值键入

如何在Polars中创建条件增量列?

如何使用Polars从AWS S3读取镶木地板文件

如何使用aiohttp获取图像并直接处理它而不保存它?

将标量值作为输入并输出矩阵的函数的积分

对齐多个叠置多面Seborn CAT图

Pandas 修正滚动平均

Chrome 122-如何允许不安全的内容?(不安全下载被阻止)

有没有更快的方法来快速修改、更新和排序列表或词典?

属性错误:';Styler';对象没有属性';样式';

使用Numpy进行重写For循环矢量化

使用GEKKO将两个总体拟合到测量值如何优化第一个数据点

是否可以在dash-cytoscape中使用宽度优先布局中的epthSort参数?

如何动态修改气流任务decorator 属性?

如何编写拆分和 Select 每个PANAS列中的第一个元素的Python函数