r/学习python

2个

发表于 5 个月前

= 模块没有在 ubuntu VPS 上正确导入 =

![ ](httpswww.redditstatic.com/desktop2x/img/renderTimingPixel.png)

我有以下文件夹结构

- 父级 -- corefoo.py -- sourcesbar.py

在 foo.py 里面

我这样做

导入操作系统,系统

sys.path.append(os.path.join(os.path.dirname(os.path.abspath(filefrom sources.bar import Bar

然后我这样执行

蟒蛇来源/foo.py

我在 windows 10 的 virtualenv 上试过这个,它有效,在 ubuntu wsl virtualenv 上它有效。

在 virtualenv 中的我的 ubuntu 服务器上,也出现此错误

从 sources.bar import Bar ModuleNotFoundError: No module named 'sources.bar'我尝试从不同的路径执行脚本,但没有任何效果。

在我的 ubuntu 20.04 VPS 上,我有 python 3.8.10,在 Windows 上,我有 python 3.9.7,在 wsl 上,我有 python 3.9.2

我应该将 ubuntu 上的 python 升级到 3.9 还是这是一个不相关的问题?

67% 赞成

1级

os.path.join(os.path.dirname(os.path.abspath(文件

请允许自己在这里享受 pathlib 带来的乐趣,

从 pathlib 导入路径 sys.path.append(str(Pathfileresolveparents[1

你甚至可能想考虑使用

sys.path.insert(0, str(Pathfileresolveparents[1

保证它会首先检查该文件夹,而不是不小心从现有的 PATH 中选择一些东西

1个

== 关于社区 ==

Subreddit 用于发布问题并征求有关您的 Python 代码的一般建议。

623k

成员

570

在线的

创建于 2009 年 10 月 2 日

Reddit Inc © 2022。保留所有权利