gpt4 book ai didi

python - Ubuntu 找不到包含 __init__.py 的模块目录

转载 作者:行者123 更新时间:2023-12-04 19:16:37 25 4
gpt4 key购买 nike

我有一个具有以下结构的python项目:

/project
/bin
executable
/app
__init__.py
a.py
b.py
c.py

来自 /project目录我尝试运行可执行文件,这取决于 app 中的模块包裹:
./bin/executable
但是,当我尝试这个时,python 找不到应用程序包中定义的任何模块,给出 ImportError: No module named XYZ错误。

据我了解, __init__.py 的存在在 app目录应该将其标记为模块吗?

我究竟做错了什么?

最佳答案

如果您将以下内容添加到您的可执行文件中(在您尝试导入您的应用程序模块之前):

import sys; print sys.path
...
import app

您会看到当前工作目录未包含在路径中。我建议你通过添加 setup.py 创建一个合适的 Python 包。文件。然后你可以安装你的包,你的可执行文件应该可以正常工作。

这是一个简单的 setup.py文件:
from setuptools import find_packages, setup

config = {
'name': 'app',
'version': '0.1.0',
'description': 'some app',
'packages': find_packages(),
}

setup(**config)

我更喜欢安装到 virtualenv 中:
virtualenv venv
source venv/bin/activate
python setup.py install
./bin/executable

现在,如果您停用该 virtualenv 并尝试再次运行您的可执行文件,您将获得原来的 ImportError .

花几分钟阅读 Python Packaging User Guide .

此外,您可能想使用 python setup.py develop而不是 python setup.py install .

关于python - Ubuntu 找不到包含 __init__.py 的模块目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35429562/

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