Python 源自多个环境

问题描述 投票:0回答:1

所以我正在使用这个名为

frappe
的框架,它似乎搞乱了 Python 环境初始化。

为了提供一些上下文,有一个名为

bench
的命令行工具,用于控制框架。

命令

bench start
Procfile
配合使用。以下是 Procfile 的内容:

redis_queue: redis-server config/redis_queue.conf

web: bench serve --port 8000

socketio: /home/amol/.nvm/versions/node/v22.3.0/bin/node apps/frappe/socketio.js


watch: bench watch


schedule: bench schedule
worker:  bench worker 1>> logs/worker.log 2>> logs/worker.error.log 

命令

bench start
在内部运行此 proc 文件。

我已经使用了虚拟环境来设置python虚拟环境。以下是虚拟环境处于活动状态时我可以运行的一些命令:

(.venv) amol@amol-IdeaPad-Gaming-3-15ARH05:~/WorkSpace/frappe/frappe-bench$ which python
/home/amol/WorkSpace/frappe/.venv/bin/python

(.venv) amol@amol-IdeaPad-Gaming-3-15ARH05:~/WorkSpace/frappe/frappe-bench$ which bench
/home/amol/WorkSpace/frappe/.venv/bin/bench

(.venv) amol@amol-IdeaPad-Gaming-3-15ARH05:~/WorkSpace/frappe/frappe-bench$ python
Python 3.12.3 (main, Sep 11 2024, 14:17:37) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import frappe;
>>> frappe
<module 'frappe' from '/home/amol/WorkSpace/frappe/frappe-bench/apps/frappe/frappe/__init__.py'>
>>> 

现在与

bench start
一起使用的命令
Procfile
似乎使用了与我的终端使用的不同的 Python 环境。这是我得到的错误:

16:26:56 watch.1       | /home/amol/WorkSpace/frappe/frappe-bench/env/bin/python: Error while finding module specification for 'frappe.utils.bench_helper' (ModuleNotFoundError: No module named 'frappe')

我的理解是,它显然使用了与我的终端使用的不同的Python环境。

这是我使用命令行运行

bench watch
时遇到的错误。

(.venv) amol@amol-IdeaPad-Gaming-3-15ARH05:~/WorkSpace/frappe/frappe-bench$ bench  watch
/home/amol/WorkSpace/frappe/frappe-bench/env/bin/python: Error while finding module specification for 'frappe.utils.bench_helper' (ModuleNotFoundError: No module named 'frappe')

我希望来自 frappe 团队的人或精通 Python 虚拟环境的人可以帮助我解决这个问题。

python virtualenv frappe
1个回答
0
投票

Frappe 在

./env
下管理自己的 Python 环境。 Frappe 和其他应用程序(从
./apps
进行可编辑安装),包括它们的依赖项,将安装在您的工作台目录中的
env
下。
bench
CLI 管理此操作并使用
./env/bin/python
解释器来满足其所有需求。

虽然工作台 CLI 应该全局安装 - 我更喜欢

pipx
以避免包冲突。 bench CLI 和 Frappe 通常使用不同的环境,进而使用解释器。

创建工作台 (实例) -

frappe-bench
文件夹时可能出现问题。你可以运行`bench setup env

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.