我没有麻烦运行和调试我的VSCode Python扩展(项目ms-python.python),但由于蟒蛇子项目根目录不是整个项目的目录,从我的消息来源全部进口用红色下划线,并在列problems,因此Go to definition,有些类似功能无法正常工作.如何告诉IDE我的项目的起点在哪里:
Whole Project path:
docs
server
entities
user.py
customer.py
env
viewer
db
Run Code Online (Sandbox Code Playgroud)
该server目录是从以下位置启动导入路径的位置:
from entities.user import User
Run Code Online (Sandbox Code Playgroud) 如何$PYTHONPATH在Visual Studio Code中为我的工作区正确设置变量?
背景资料
我已经安装了两个版本的GNURadio:
Linux Mint软件包管理器在以下版本中安装的GNURadio版本3.7.11 /usr/lib/python2.7/dist-packages/gnuradio
由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'
>>>
Run Code Online (Sandbox Code Playgroud)
当然,无需修改$ PYTHONPATH python即可导入较旧的GNURadio版本。
我想在VisualStudio Code中为新版本的GNURadio编写,运行和调试python脚本。我一直在尝试了解VSCode 的python解释器,工作区和环境的选择。
据我了解, …
我正在尝试将 src 文件夹添加到我的PYTHONPATHiE 中,做与Mark directory as sources root在 PyCharm 中相同的事情。
我查看了Visual Studio Code的解决方案- 如何向 python 路径添加多个路径?但是那里显示的解决方案对我不起作用。
我已经设置了我的最小示例,如下面的屏幕截图所示:
我的理解是拥有一个 .env 文件PYTHONPATH="./src;${PYTHONPATH}"会将 src 文件添加到路径中。
然而,当运行代码运行器或运行python change_pyhton_path.pysrc 不是 PYTHONPATH 的一部分并且从 src 直接导入失败时。
我确实有设置"python.envFile": "${workspaceFolder}/.env"。
另一方面,在 pyCharm 中,点击Mark directory as sourcesrc后一切正常。

感谢您的帮助!
我的Python项目文件夹结构如下:
.python_practice
|--lib
|--lib.py
|--__init__.py
|--practice1
|--my_module.py
|--__init__.py
|--__init__.py
Run Code Online (Sandbox Code Playgroud)
我的启动配置是
{
"name": "Python: Module",
"type": "python",
"request": "launch",
"module": "practice1.my_module",
"console": "integratedTerminal"
},
Run Code Online (Sandbox Code Playgroud)
在my_module.py中
from lib.lib import util_func
Run Code Online (Sandbox Code Playgroud)
当我尝试使用VScode进行调试时,出现错误: "No module named practice1.my_module"
但是当我使用以下命令运行它时,它可以正常工作
python -m practice1.my_module
Run Code Online (Sandbox Code Playgroud)
如何调试代码,以便相对导入工作?
任何帮助将不胜感激,谢谢。