我在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.path
和sys.executable
时,import语句似乎在conda env之外加载了某些东西
我在这里错过了什么?欢迎任何输入。
致谢
答案 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)中的步骤,并有一些提及:
答案 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版本。