- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Python 3.7 并使用 VS Code 作为我的 IDE。我安装了 Microsoft Python 扩展,并启用了 pylint
用于掉毛和 pytest
对于单元测试,将它们安装到系统 python37 脚本文件夹中,不存在任何虚拟环境或处于事件状态。
在这一点上,一切似乎都在起作用。我的 Python37/Scripts
路径在 Windows 系统上 PATH
, 并且 pytest 和 pylint 主脚本/exe 存在于那里。 VS Code 可以找到并运行我的测试,并且 lint 很好。
现在,我为我正在处理的包安装了一个虚拟环境,并将 Python 解释器更改为名为 .venv
的虚拟环境。 .
这样做之后,我安装了所有包依赖项,一切似乎都在工作,但是 VS Code 会弹出窗口,告诉我未安装 pylint 和 pytest。
如果我点击 yes
要安装,它似乎使用当前默认的 python 可执行文件(在这种情况下,我的 .venv
虚拟环境中的 python 3.7)安装它们,但使用 --user
将其安装给用户的选项 Python\Python37\Scripts
文件夹(在 \users\user\appdata\roaming
文件夹中),即使它已经存在于我的系统中 python37\Scripts
文件夹,即在路径上(安装时未激活虚拟环境)。
但是即使在扩展程序按照它想要的方式安装它们之后,我仍然无法自动发现我的测试,并且当我尝试配置测试时,它会再次尝试安装到用户目录。
——
所以,我想所有这些都是要问的 - 这是 VS Code 中的缺陷吗?
有什么方法可以在 VS Code 始终找到的永久位置安装我想要使用的标准 Python 工具,还是必须将每个工具(例如 pylint 和 pytest)重新安装到我设置的每个虚拟环境中?
如果我手动将这些包安装到虚拟环境中,看起来一切正常。是将它们(以及我计划在全局范围内使用的所有其他工具)安装到每个虚拟环境中的唯一选择吗?
最佳答案
一个解决方案(但重新考虑这样做 - 见下文)
我确实找到了 pylint
的解决方案,(虽然有点笨拙)。
在全局 VS Code 设置中,对于 PyLint , 搜索 pylintpath
的 VS Code 设置然后找到下面列出的项目并填写您的用户或系统安装路径pylint
.在 Windows 中,它必须采用如下所示的格式,每个路径分隔符都有双反斜杠:
请注意,您还可以为 pylint
输入绝对路径通过在“设置”中选择相应的选项卡,仅针对给定的工作区或文件夹。pytest
也有类似的设置。 ,这似乎以相同的方式工作。我在 pytest 发现和运行时遇到了一些“故障”(它似乎每个测试运行两次),但它似乎确实有效。
来自 Brett 的评论 - 重新思考这个策略
根据 Brett Cannon 的评论,我将切换到只在每个虚拟环境中安装我的开发包。这似乎是长期开发人员的最佳实践。
当我考虑到我可能更喜欢的标准工具可能会因包而异时,这是有道理的,例如使用不同单元测试框架或不同 linter 的公共(public)项目 - 因为该项目的所有开发人员都需要使用相同的工具来避免使用工具碰撞(即考虑简单的差异,例如间距或缩进的工作方式,不同的 linter 以不同的方式提示)。
为每个虚拟环境安装开发工具的解决方案
对此的一种解决方案是创建一个 requirements-dev.txt
文件,包含你使用的所有开发工具包,可以使用 python -m pip install -r requirements-dev.txt
安装.
这提供了一种方法来获得某人在项目上工作所需的开发工具的单独列表,该列表是可分发的,但与标准用户安装要求分开。
他还建议您可以菊花链式连接需求文件。例如,requirements-dev.txt
的第一行可以 -r requirements.txt
,这将安装正常需求文件中的所有内容,然后是第一行之后的所有剩余开发需求。这将使用单个命令安装普通和开发依赖项。
关于python - 使用 VS Code Python 扩展 - 如何将 Python 模块安装到虚拟环境之外的永久位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58775312/
我最近在我的机器上安装了 cx_Oracle 模块,以便连接到远程 Oracle 数据库服务器。 (我身边没有 Oracle 客户端)。 Python:版本 2.7 x86 Oracle:版本 11.
我想从 python timeit 模块检查打印以下内容需要多少时间,如何打印, import timeit x = [x for x in range(10000)] timeit.timeit("
我盯着 vs 代码编辑器上的 java 脚本编码,当我尝试将外部模块包含到我的项目中时,代码编辑器提出了这样的建议 -->(文件是 CommonJS 模块;它可能会转换为 ES6 模块。 )..有什么
我有一个 Node 应用程序,我想在标准 ES6 模块格式中使用(即 "type": "module" in the package.json ,并始终使用 import 和 export)而不转译为
我正在学习将 BlueprintJS 合并到我的 React 网络应用程序中,并且在加载某些 CSS 模块时遇到了很多麻烦。 我已经安装了 npm install @blueprintjs/core和
我需要重构一堆具有这样的调用的文件 define(['module1','module2','module3' etc...], function(a, b, c etc...) { //bun
我是 Angular 的新手,正在学习各种教程(Codecademy、thinkster.io 等),并且已经看到了声明应用程序容器的两种方法。首先: var app = angular.module
我正在尝试将 OUnit 与 OCaml 一起使用。 单元代码源码(unit.ml)如下: open OUnit let empty_list = [] let list_a = [1;2;3] le
我在 Angular 1.x 应用程序中使用 webpack 和 ES6 模块。在我设置的 webpack.config 中: resolve: { alias: { 'angular':
internal/modules/cjs/loader.js:750 return process.dlopen(module, path.toNamespacedPath(filename));
在本教程中,您将借助示例了解 JavaScript 中的模块。 随着我们的程序变得越来越大,它可能包含许多行代码。您可以使用模块根据功能将代码分隔在单独的文件中,而不是将所有内容都放在一个文件
我想知道是否可以将此代码更改为仅调用 MyModule.RED 而不是 MyModule.COLORS.RED。我尝试将 mod 设置为变量来存储颜色,但似乎不起作用。难道是我方法不对? (funct
我有以下代码。它是一个 JavaScript 模块。 (function() { // Object var Cahootsy; Cahootsy = { hello:
关闭。这个问题是 opinion-based 。它目前不接受答案。 想要改进这个问题?更新问题,以便 editing this post 可以用事实和引文来回答它。 关闭 2 年前。 Improve
从用户的角度来看,一个模块能够通过 require 加载并返回一个 table,模块导出的接口都被定义在此 table 中(此 table 被作为一个 namespace)。所有的标准库都是模块。标
Ruby的模块非常类似类,除了: 模块不可以有实体 模块不可以有子类 模块由module...end定义. 实际上...模块的'模块类'是'类的类'这个类的父类.搞懂了吗?不懂?让我们继续看
我有一个脚本,它从 CLI 获取 3 个输入变量并将其分别插入到 3 个变量: GetOptions("old_path=s" => \$old_path, "var=s" =
我有一个简单的 python 包,其目录结构如下: wibble | |-----foo | |----ping.py | |-----bar | |----pong.py 简单的
这种语法会非常有用——这不起作用有什么原因吗?谢谢! module Foo = { let bar: string = "bar" }; let bar = Foo.bar; /* works *
我想运行一个命令: - name: install pip shell: "python {"changed": true, "cmd": "python <(curl https://boot
我是一名优秀的程序员,十分优秀!