康达在激活环境之外寻找图书馆

时间:2019-01-22 07:34:35

标签: python python-3.x windows conda

我在Windows上工作,我发现关于conda创建的环境的导入行为有所不同,我无法理解,详情在此

案例1(成功)

(base) C:\> conda activate <env-name>
(env-name) C:\> python
>>> import numpy
(Success)

第2种情况(失败)

C:\> cd <path-to-conda-env>
C:\path-to-conda-env> python
>>> import numpy
(Fail)

我以前是使用ssl软件包来解决此问题的,可以通过从conda-forge而不是default安装软件包来解决此问题,因此该软件包似乎是一个问题< / p>

我遇到的麻烦是,在我检查sys.pathsys.executable时,import语句似乎在conda env之外加载了某些东西

我在这里错过了什么?欢迎任何输入。

致谢

2 个答案:

答案 0 :(得分:2)

我用 Anaconda 2018.12 重现了这个问题(与sys.path相同,排除了我最初的猜测:%PYTHONPATH%)。环境设置(无论是 Ancaonda VEnv 还是任何其他此类工具)(主要)是设置一些环境变量。

在使用更多模块(除了 numpy ssl )进行测试之后,通过查看错误,我意识到失败的模块还有其他 .dll 自己的依赖项。考虑到[MS.Docs]: Dynamic-Link Library Search Order,我在 Python 进程内显示了%PATH%变量的内容。在启用 conda 的版本中,以下路径位于开头:

>>> import os
>>> import pprint
>>>
>>> pprint.pprint(os.environ["PATH"])
('e:\\Install\\x64\\Anaconda\\Anaconda\\2018.12;e:\\Install\\x64\\Anaconda\\Anaconda\\2018.12\\Library\\mingw-w64\\bin;e:\\Install\\x64\\Anaconda\\Anaconda\\2018.12\\Library\\usr\\bin;e:\\Install\\x64\\Anaconda\\Anaconda\\2018.12\\Library\\bin;e:\\Install\\x64\\Anaconda\\Anaconda\\2018.12\\Scripts;e:\\Install\\x64\\Anaconda\\Anaconda\\2018.12\\bin;
# The rest of the dirs (regular ones)

不用说,在开始 normal Python

e:\Install\x64\Anaconda\Anaconda\2018.12>set PATH=e:\Install\x64\Anaconda\Anaconda\2018.12;e:\Install\x64\Anaconda\Anaconda\2018.12\Library\mingw-w64\bin;e:\Install\x64\Anaconda\Anaconda\2018.12\Library\usr\bin;e:\Install\x64\Anaconda\Anaconda\2018.12\Library\bin;e:\Install\x64\Anaconda\Anaconda\2018.12\Scripts;e:\Install\x64\Anaconda\Anaconda\2018.12\bin;%PATH%

e:\Install\x64\Anaconda\Anaconda\2018.12>python
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import ssl

但是,您应该始终遵循建议的方式(尤其是在不完全了解发生了什么情况时),并且这正在激活环境,因为即使这种情况在这种情况下也可行,为别人工作。

@ EDIT0

正如我在评论之一中所指定的那样,为了将环境添加到 PyCharm 中,请遵循[SO]: How to install Python using the “embeddable zip file” (@CristiFati's answer)中的步骤,并有一些提及:

  • 在步骤 #4。 中,确保选择“ Conda Environment ”而不是“ Virtualenv Environment
  • 显然,启动 Python控制台时,问题仍然存在。情况并非如此,似乎未设置环境。也许是因为我没有创建环境,我只是从根 Anaconda 安装启动了 Python ?无论如何,作为一种解决方法( gainarie ),我正在为 Python控制台应用相同的更改(设置%PATH%)(来自“ 设置->构建,执行,部署->控制台-> Python控制台“),如下图所示:

    Img00 - Console settings

    重新启动控制台后,一切正常。

答案 1 :(得分:0)

您需要激活您的环境。 看到:

(base) C:\> conda activate <env-name>
(env-name) C:\> python
>>> import numpy
(Success)

有一个(base),表示活动环境名称基于 。 尝试做 conda info --envs

以获取环境列表。

操作时:

C:\> cd <path-to-conda-env>
C:\path-to-conda-env> python
>>> import numpy
(Fail)

您正在导航到该环境的文件夹,但没有使用它所保存的python环境。

尝试使用:

which python

查看您使用的是哪个python版本。