首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在中与自制包和pip/pip 3包一起使用国产python3

在中与自制包和pip/pip 3包一起使用国产python3
EN

Stack Overflow用户
提问于 2020-04-08 04:51:33
回答 1查看 2.8K关注 0票数 6

我目前正尝试在MacOSX10.13.6上设置Visual代码,以便在python3中进行编码。我希望避免对不同的python3脚本使用多个虚拟环境,而是让它们都使用以下方式运行:

(1)相同的homebrew安装python3

(2)访问已安装的python包:

  • homebrew包列表
  • pip3安装包列表
  • pip已安装软件包列表。

首先,我首先使用python3安装了homebrew

代码语言:javascript
复制
$ brew info python
python: stable 3.7.7 (bottled), HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python/3.7.7 (4,062 files, 62.4MB)
...
Python has been installed as
  /usr/local/bin/python3
...
You can install Python packages with
  pip3 install <package>
They will install into the site-package directory
  /usr/local/lib/python3.7/site-packages

第二,我使用homebrew安装了所需的软件包。

代码语言:javascript
复制
$ brew list
cmake           libffi          p11-kit
dcraw           libheif         pandoc
dlib            libidn2         pcre
...
jasper          numpy           webp
...

以及使用pippip3的其他软件包

代码语言:javascript
复制
$ pip list
DEPRECATION:...
Package                                Version 
-------------------------------------- --------
altgraph                               0.10.2  
...
numpy                                  1.8.0rc1
...
zope.interface                         4.1.1  
$
$ pip3 list
Package            Version
------------------ -------
appnope            0.1.0  
... 
numpy              1.18.2 
pandocfilters      1.4.2  
parso              0.5.2  
pexpect            4.7.0  
pickleshare        0.7.5  
pip                20.0.2 
pomegranate        0.12.2 
...
scipy              1.4.1  

第三,我打开了Visual代码,并在"Preferences“-> "Settings”中将"Python:Python Path"设置为homebrew python3安装,如上面提到的/usr/local/bin/python3

看这张截图:

接下来,我使用以下方法将/usr/local/lib/python3.7/site-packages添加到文件中:

代码语言:javascript
复制
"python.autoComplete.extraPaths": [
    "/usr/local/lib/python3.7/site-packages" ]

最后,我选择Visual中的python解释器作为/usr/local/bin/python3,并尝试按照下面的屏幕快照在.py脚本中运行以下2行导入。注意,解释器是由VS代码窗口左下角提供的Python 3.7.0 64-bit

在所有这些之后,单击"Play“按钮在VS code的右上角运行代码后,得到了这个输出:

代码语言:javascript
复制
[Running] python -u "/Users/...bayes_net_nodes.py"
Traceback (most recent call last):
  File "/Users/...bayes_net_nodes.py", line 1, in <module>
    import numpy as np
ModuleNotFoundError: No module named 'numpy'

[Done] exited with code=1 in 0.037 seconds

配置VS代码的最简单方法是什么,这样我就可以运行python3脚本,这些脚本可以访问我在系统中安装的所有包,而无需使用虚拟环境。谢谢!

注意:有一种解决方法似乎有效,我不知道为什么,如果我在脚本#! /usr/local/bin/python3和输出的顶部放置一个shebang,那么如下所示:

代码语言:javascript
复制
[Running]  /usr/local/bin/python3 "/Users/...bayes_net_nodes.py"

[Done] exited with code=0 in 0.051 seconds

这很奇怪,因为这与上面的输出不同,在上面我没有使用shebang,但是根据VSCode,这两个python解释器实际上都是/usr/local/bin/python3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-09 12:37:16

我能重现你的问题。但是,只有当我使用代码运行程序( Code )运行时,才会使用。

这种使用[Running][Done]的输出日志是代码运行程序。

播放按钮也不是绿色,表示代码运行程序,因为默认是绿色的。

现在,为了解决问题!

您会注意到它使用python -u执行您的脚本。python将是您系统上python的任何含义,对我来说,这是默认的Python2.7。基本上,这不是你的自制Python3与numpy。

代码运行程序有一组默认的“执行器”,它告诉它要为哪种语言使用哪种可执行文件。在您的设置中将其搜索为“代码运行程序执行映射”:

打开您的settings.json,输入code-runner.executorMap,然后让它在默认情况下自动完成。然后,您将看到一长串语言和执行器之间的映射。寻找用于python

代码语言:javascript
复制
    "code-runner.executorMap": {
        "javascript": "node",
        ...
        "python": "python -u",
        "perl": "perl",
        ...
    }

它就是这样的:python -u,和运行脚本的那个一样。

如果您想继续使用代码运行程序,只需将其更改为您想要使用的任何python解释器。在您的例子中,应该是/usr/local/bin/python3

代码语言:javascript
复制
    "code-runner.executorMap": {
        ...
        "python": "/usr/local/bin/python3",
        ...
    }

它现在应该能发挥作用:

它使用#! /usr/local/bin/python3 shebang的原因是因为Code有一个设置,它尊重文件的shebang (code-runner.respectShebang),这在默认情况下是正确的。

如果您不希望这个额外的步骤设置代码运行程序,您可以简单地禁用(或卸载)。您已经完成的所有步骤(设置python.pythonPath、选择解释器和单击Play按钮)在微软的Python扩展上都会正常工作。请参阅运行Python文件选择环境调试上的官方文档。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61093541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档