背景信息:
我安装了两个版本的GNURadio:
1.由Linux Mint软件包管理器安装的GNURadio 3.7.11,位于/usr/lib/python2.7/dist-packages/gnuradio。
2.PyBOMBS安装的GNURadio 3.7.13.4,位于/home/tejul/Documents/gr13/default/lib/python2.7/dist-packages/gnuradio(我的前缀目录是~/Documents/gr13/default)。
只有在运行setup_env.sh脚本(其中之一是将/home/tejul/Documents/gr13/default/lib/python2.7/dist-packages添加到$PYTHONPATH中)并在终端中启动python后,我才能使用更新的GNURadio版本。
tejul@Wacom:~/Documents/gr13/default$ ls
bin etc include lib libexec setup_env.sh share src
tejul@Wacom:~/Documents/gr13/default$ source ./setup_env.sh
tejul@Wacom:~/Documents/gr13/default$ python
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from gnuradio import gr
>>> gr.version()
'3.7.13.4'
>>>
如果不修改$PYTHONPATH,Python会自然地导入旧版本的GNURadio。
我想在Visual Studio Code中编写、运行和调试新版本GNURadio的Python脚本。我一直在尝试理解VSCode对Python解释器、工作区和环境的选择。
据我所知,VSCode工作区设置python.pythonPath
不应与环境变量$PYTHONPATH
混淆。 python.pythonPath
是用于调试或运行代码的Python解释器的路径,而$PYTHONPATH
是Python用来搜索模块的环境变量。
看起来PyBOMBS没有将自己的Python解释器安装到我的前缀目录中。因此,我需要使用位于/usr/bin/python2.7
的普通Python解释器来使用VSCode。因此,重新定义VSCode的python.pythonPath
或选择另一个Python解释器都无法帮助我。
我需要让VSCode使用我自己版本的环境变量$PYTHONPATH
,这将告诉我的常规Python解释器最好从/home/tejul/Documents/gr13/default/lib/python2.7/dist-packages
中导入模块。
问题
根据文档,我已经在工作区目录中创建了自己的.env
文件,设置了Python导入模块时位置的优先顺序。但是,它对Python解释器没有影响。
你能看到我在这里做错了什么吗?我还尝试过:
- 将PYTHONPATH设置为更高的一个文件夹级别,即
/home/tejul/Documents/gr13/default/lib/python2.7
,但这没有帮助 - 将变量命名为
$PYTHONPATH
而不是PYTHONPATH
,但这没有帮助 - 在每次更改
.env
文件后重新启动VSCode,但这没有帮助 - 在路径字符串周围使用双引号,例如
PYTHONPATH="/home/tejul/Documents/gr13/default/lib/python2.7:/usr/lib/python2.7"
,但这没有帮助
# 设置python gnuradio环境源
/home/tejul/Documents/gr13/default/setup_env.sh
这会自动为每个终端窗口运行setup_env.sh脚本。 - fleetingbytes