gpt4 book ai didi

尽管 Linux 上有 __init.py__ 和正确的 PYTHONPATH,但仍出现 Python ModuleNotFoundError

转载 作者:太空宇宙 更新时间:2023-11-03 19:45:38 25 4
gpt4 key购买 nike

我正在尝试让 Python 脚本在我的 Ubuntu 服务器上运行。我有以下目录结构:

/home/pythontest
|_ __init__.py
|_ main.py
|_ module_a.py

模块_a.py内部:

def print_a():
print('a')

main.py 内部:

from pythontest.module_a import print_a
def execute():
print_a()
execute()

当我在 Windows 计算机上的 PyCharm 中运行 main.py 时,它会按预期打印 a,在我的 Linux 计算机上,当我调用 python3 main.py 时,我得到一个

Traceback (most recent call last):
File "main.py", line 1, in <module>
from pythontest.module_a import print_a
ModuleNotFoundError: No module named 'pythontest'

__init__.py 存在(并且完全为空),并且我已使用以下命令将目录/home/pythontest 添加到 PYTHONPATH 中:

export PYTHONPATH="${PYTHONPATH}:/home/pythontest"

(使用 echo $PYTHONPATH 进行测试也会产生正确的路径)

附加说明: - 我机器上的python3版本是Python 3.6.9
- 我的服务器运行Ubuntu 18.04 - 所有这些文件都是在 Windows 上用 PyCharm 编写的,并通过 SSH 复制

最佳答案

您正在导入位于/home中的pythontest(.module_a)。这就是您应该添加到 PYTHONPATH 中的内容:

export PYTHONPATH=${PYTHONPATH}:/home

有关 [Python.Docs]: The import system 的更多详细信息.

或者您无法从其中引用包名称(考虑相对导入):

from .module_a import print_a

可能还想检查[SO]: How PyCharm imports differently than system command prompt (Windows) (@CristiFati's answer) ,看看为什么它可以在 PyCharm 中工作。

关于尽管 Linux 上有 __init.py__ 和正确的 PYTHONPATH,但仍出现 Python ModuleNotFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60158927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com