我已经设置了PyCharm,创建了我的virtualenv(通过虚拟env命令,或者直接在PyCharm中),并将该环境激活为我的Interpreter.一切都很好.
但是,如果我使用"工具,打开终端"打开终端,提供的shell提示符不使用虚拟环境; 我仍然必须source ~/envs/someenv/bin/activate在该终端内使用它来激活它.
另一种方法是激活shell中的环境,并从该环境运行PyCharm.这是"可行的",但非常难看,如果我从PyCharm切换环境或项目,我就会遇到重大问题:我现在正在使用完全错误的环境.
是否有其他更简单的方法让"工具,开放式终端"自动激活虚拟环境?
我无法将项目的单元测试集成到 VSCode 中。测试发现失败,因为 pytest 无法识别源文件。
(只是为了澄清,这是一个关于 VSCode 的问题,而不是关于 pytest 的问题。我在这里是因为 VSCode 将其问题部分链接到 SOF。如果我手动运行测试,测试可以正常工作。)
工装:pyenv, pipenv, pytest.
项目布局:
/src -> source code
/tests/unit -> test code
Run Code Online (Sandbox Code Playgroud)
.vscode/settings.json:
{
"python.envFile": "${workspaceFolder}/.env",
"python.testing.pytestEnabled": true,
"python.testing.pytestArgs": [
"tests"
],
"python.testing.unittestEnabled": false,
"python.testing.nosetestsEnabled": false
[...]
}
Run Code Online (Sandbox Code Playgroud)
.env:
PYTHONPATH=./src
Run Code Online (Sandbox Code Playgroud)
(注意:我认为 .env 在这里并不重要,根据此评论,在Use of the PYTHONPATH variable下)
测试发现失败并显示:
tests/unit/test_revoke_default_sg.py:7: in <module>
from revokedefaultsg.app import RevokeDefaultSg, UnknownEventException
E ModuleNotFoundError: No module named 'revokedefaultsg'
=========================== short test summary info …Run Code Online (Sandbox Code Playgroud) 我的项目结构:
/myproject/ <- I would like to skip that folder
/mypackage/
/subpackage/
mymodule.py
run.py
- setup.py
Run Code Online (Sandbox Code Playgroud)
run.py我想从mymodule.py这样的地方导入:
from mypackage.subpackage.mymodule import something
Run Code Online (Sandbox Code Playgroud)
代替:
from myproject.mypackage.subpackage.mymodule import something
Run Code Online (Sandbox Code Playgroud)
有没有办法将setup()入口点定义为beingmypackage并skip myproject?
python ×2
django ×1
pip ×1
pipenv ×1
pycharm ×1
pytest ×1
setuptools ×1
shell ×1
virtualenv ×1