【发布时间】:2020-04-20 05:13:00
【问题描述】:
我创建了一个虚拟环境,其中包含一些 python 所需的包。当我激活虚拟环境并尝试从同伴运行流程图时,它抱怨找不到我包含在虚拟环境中的特殊包。
有趣的是,我可以从命令行成功运行 GnuRadio Companion 自动生成的 .py 版本的流程图。
我怎样才能让它在 Gnu Radio Companion 下工作?
作为一个具体的例子,我创建了一个包含 pandas 包的虚拟环境,并尝试在最初使用 gr_modtool 创建的 no_block 类型自定义 python 块中导入 pandas。我在激活虚拟环境的情况下进行了安装。虽然从命令行运行流程图工作正常,但尝试从 GRC 运行相同的流程图时出现以下错误(从命令行打开并激活虚拟环境):
Traceback (most recent call last):
File "/home/my_name/devel/gr-my_oot_module/examples/my_flowgraph.py", line 35, in <module>
import my_oot_module
File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/my_oot_module/__init__.py", line 39, in <module>
from .my_noblock_block import my_noblock_block
File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/my_oot_module/my_noblock_block.py", line 25, in <module>
import pandas
ModuleNotFoundError: No module named 'pandas'
【问题讨论】:
-
所以,你的环境中没有 pandas,这与 GNU Radio 无关!
-
我认为 pandas 在我的环境中。如果我的环境中没有熊猫,我的 .py 流程图(由 GRC 创建的流程图)在激活虚拟环境的情况下从命令行(通过 python3 my_flowgraph.py)调用时如何运行?此外,在虚拟环境停用的情况下,从命令行运行流程图会失败(如预期的那样)。
-
很抱歉,但这一切都与 GNU Radio 无关,而是您的 virtualenvs 是如何设置的,我无法从这里检查。
-
我挖了一点,认为我至少可以部分了解为什么在运行 gnuradio-companion 时不使用虚拟环境。 gnuradio-companion 脚本是一个 python 文件,顶部有一个 shebang 行:#!/usr/bin/python3 这不是 VE 解释器的路径。
-
哦,有趣!
标签: python virtualenv gnuradio gnuradio-companion