![](/img/trans.png)
[英]How do I select a sub-folder as a directory containing tests in Python extension for Visual studio code
[英]How to set the root directory for Visual Studio Code Python Extension?
我使用 VSCode Python 扩展 ( ms-python.python
) 运行和调试我的项目没有问题,但是由于 python 子项目根目录不是整个项目目录,所以从我的源中导入的所有内容都带有红色下划线并列在problems
等Go to definition
和一些类似的功能无法正常工作。 我如何告诉 IDE 我的项目的起点在哪里:
Whole Project path:
docs
server
entities
user.py
customer.py
env
viewer
db
server
目录是导入路径的起始位置:
from entities.user import User
您可以使用以下.env
创建.env
文件:
PYTHONPATH=server
这将根据需要将您的server
文件夹添加到PYTHONPATH
。
(您可能需要重新启动 VSCode 才能正确考虑PYTHONPATH
。)
编辑以澄清...
在 repo 根目录下创建一个名为.env
的文件,例如your_repo/.env
。
同样在您的消费代码所在的文件夹下创建文件,而不是在 repo root 下,似乎可以工作,例如your_repo/service/.env
。
有关更多详细信息,请参阅有关环境变量定义文件的文档。
对我来说,这无需重新启动 VSC 即可工作,也许这是更新的 VSC 和扩展版本的问题。
如果你使用的是Pylance扩展,你可以通过python.analysis.extraPaths
选项设置你的源文件夹。 默认情况下,它还查找常见的源文件夹名称,如src
,此选项称为python.analysis.autoSearchPaths
。
转到文件 > 首选项 > 设置,搜索 pythonpath。 在 Pylance 选项下,您应该看到Extra Paths ,这是您设置源文件夹的地方。
PYTHONPATH
是一个环境变量,你可以设置它来添加额外的目录,python 将在其中查找模块和包。
如果需要为 Visual Studio Code 设置工作目录,
更好的方法是自定义Settings.json
和launch.json
,这样做:
// vi .vscode/Settings.json
{
"python.pythonPath": "venv/bin/python",
}
use cwd
to 指定调试器的当前工作目录,它是代码中使用的任何相对路径的基本文件夹。 如果省略,则默认为${workspaceFolder}
(在 VS Code 中打开的文件夹)。
// vi .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: your project name",
"type": "python",
"request": "launch",
"cwd": "${workspaceRoot}/server",
}
]
}
如果您希望服务器在没有任何 IDE 的情况下正常运行,只需在PYTHONPATH
前面插入Root Drectory
。 假设有一个server/run.py
:
import sys
src_path = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, _src_path)
参考: https : //code.visualstudio.com/docs/editor/debugging#_launch-versus-attach-configurations
参考: https : //code.visualstudio.com/docs/python/debugging#python-articles
参考: https : //docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH
如上所述,设置 PYTHONPATH 使其工作。 我使用以下 .env 内容,以便它适用于任何项目:
PYTHONPATH=${PROJ_DIR}:${PYTHONPATH}
当您在运行/调试配置中选中“将内容根添加到 PYTHONPATH”时,这基本上就是 PyCharm 所做的。 这是一个有用的设置,但它破坏了您,因为您的代码在 PyCharm 之外失败。
或者,如果您在终端中运行,请先导出:
export PYTHONPATH=...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.