gpt4 book ai didi

Python 绝对导入在 Ubuntu 服务器上不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 05:49:49 25 4
gpt4 key购买 nike

我的项目结构如下:

server/ (root of project)
|
|--- __init__.py
|--- requirements.txt
|--- env/ (virtual environment)
|--- app/ (main app folder)
|--- __init__.py (defines a 'app = Flask(__name__)' object)
|--- app.py (runs app on local server)
|--- models.py
|--- views.py

我在本地机器上的 app.py 中导入不同模块的方式是 do:

# /server/app/app.py

from server.app import app
from server.app.models import *
from server.app.views import *

它在我的本地机器上运行良好(使用 PyCharm IDE,以及虚拟环境文件夹 /server/env/bin/ 中的 Python 二进制文件。

但是,当我将它推送到运行 Ubuntu 的生产服务器时,我在其中全局安装了所有依赖项,它在我运行时一直抛出错误 no module named server.app:

python server/app/app.py

有人知道为什么吗?

最佳答案

任何 IDE 环境通常都会设置 pythonpath。例如。在 Eclipse 中右键单击您的项目并查看属性。你会看到你的主项目列在 pythonpath 中。此路径用于定位模块。

现在在您的生产代码中,您不在 IDE 中。所以普通的 python 解释器找不到你的路径。因此,您需要指定这一点。

一种方法是在导入之前添加 sys.path.append('/path/to/the/project')(这应该为第一个执行的脚本完成,在这种情况下 app.py,这样你只需要做一次)。

您还可以将您的路径永久添加到您的生产环境中。参见 this发布。

关于Python 绝对导入在 Ubuntu 服务器上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30787176/

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