如何使Conda和Virtualenv在Mac OS Catalina上工作?

时间:2019-10-08 20:36:34

标签: python macos conda

我以前曾让Conda在Mojave上顺利运行,但是我发现升级到Catalina会将“ anaconda3”文件夹移动到“桌面”>“重定位项”>“安全性”>“ anaconda3”。似乎Catalina的安全设置可能不再允许应用程序直接安装在用户目录下。

我尝试了建议here,写在下面:

  

嗨,我可能有解决办法

     
      
  • 将位于“重定位项”中的文件夹anaconda3复制到/ Users / myname /
  •   
  • 打开终端
  •   
  • 输入:export PATH =“ / Users / myname / anaconda3 / bin:$ PATH”
  •   
  • 输入:conda init zsh
  •   
     

成功了!祝好运!

但这对我不起作用。在conda init zsh之后,我得到:

  

-bash:/ Users / USER / anaconda3 / bin / conda:/ anaconda3 / bin / python:错误的解释器:没有这样的文件或目录

如何在不丢失所有虚拟环境的情况下重新启动并运行Conda?谢谢!


更新

我按照@Ted Shaowang的建议让Conda工作。这意味着conda env list显示了通过Conda创建的所有虚拟环境。

但是我仍然遇到virtualenv的问题,因为自从我更改了默认的anaconda3文件位置以来,找不到python。

找不到位于.virtualenvs/env/bin/python的python可执行文件。我是否还需要进行进一步的更改以使python也可以从virtualenv开始工作?

8 个答案:

答案 0 :(得分:6)

我有完全相同的问题,这对我有用:

将anaconda从“重新分配的项目”移至~/anaconda3后,将~/anaconda3/bin/conda文件的第一行从#!/anaconda3/bin/python移至#!/Users/USERNAME/anaconda3/bin/python以反映更改。

答案 1 :(得分:2)

我可能会放弃使用上述解决方案。该~/anaconda3/bin目录具有许多可运行对象(而不仅仅是conda一个),需要以这种手动方式对其进行更改。例如,除非进行相同的更改,否则您将无法运行jupyter notebook,也不能从base或其他环境运行。

我的提示:尝试获取虚拟环境的需求文件,然后重新安装。您可以使用pipreqs来获取用于各个项目的需求:https://www.idiotinside.com/2015/05/10/python-auto-generate-requirements-txt/

答案 2 :(得分:2)

不解决文件中固有的硬编码前缀条目,没有解决方案将完全起作用。 https://www.anaconda.com/how-to-restore-anaconda-after-macos-catalina-update/

中有更长的描述和建议的修复程序

答案 3 :(得分:1)

从技术上讲,这是在重新安装anaconda,但是,我恢复了所有conda env,因此,希望这是可以接受的解决方案!

这是几分钟前我在Catalina上运行它的方式(现在使用z-shell): -验证了我的桌面上是否存在“已重定位项目”目录以及内部的“ anaconda3”目录及其内容 -导航到“ anaconda3”下的envs目录,并使查找程序窗口保持打开状态(请参见屏幕截图)

enter image description here

之后:

  • 打开新的终端(z-shell)
  • 运行(已安装到/ usr / local / anaconda3):

    酒桶安装蟒蛇

  • 安装成功后,我打开了〜/ .zshrc文件(用于我的z-shell别名)并添加了以下行:

    export PATH =“ / usr / local / anaconda3 / bin:$ PATH”

  • 保存了我的〜/ .zshrc文件,然后重新加载:

    源〜/ .zshrc

  • 要验证conda命令现在可以正常运行,我跑了:

    conda环境列表

  • 对我来说,这表明它是一个基本环境,就是这样

  • 然后将Finder打开到新的环境位置: 打开/ usr / local / anaconda3 / envs/。

  • 我将所有旧的env拖动(移动)到新的envs文件夹中,然后运行:

    conda环境列表

我所有的旧环境又回来了! :)

  • 更新了我的PyCharm解释器/环境路径以反映这些环境的新位置(必须在之后重新启动PyCharm,但现在可以了!)
  • 完成

答案 4 :(得分:1)

这对我有用。

这些是我的头文件(Catalina 10.15):

/Library/Developer/CommandLineTools/usr/include/c++/v1/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h

运行sudo find /Library -name stdio.h来查看您的位置。

Mojave 10.14头文件:

$ sudo find /Library -name stdio.h 
/Library/Developer/CommandLineTools/usr/include/c++/v1/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h

可以看出,与Mojave不同,SDK现在分为MACOSX10.14和10.15。

TLDR

所以,这些是我在Catalina上的SDK文件夹:

<img width="208" alt="image" src="https://user-images.githubusercontent.com/31866965/67324292-e49a1e00-f513-11e9-997e-9c49e7badbe5.png">

  1. MacOSX.sdk重命名为MacOSX_orig.sdk
  2. 右键单击MacOSX10.14.sdk
  3. 重复
  4. 将重复的文件夹重命名为MacOSX.sdk

您的文件夹结构现在应如下所示:

<img width="195" alt="image" src="https://user-images.githubusercontent.com/31866965/67318914-74d46500-f50c-11e9-879d-ef0cd3e458cc.png">

像这样,我们基本上将以前版本的OSX SDK作为sysroot使用。希望这会有所帮助。

答案 5 :(得分:0)

不确定是否将其视为评论或至少是临时的答案,但是我现在暂时不要尝试解决Anaconda的任何Catalina兼容性问题。请参见此GitHub问题。

答案 6 :(得分:0)

我遇到了同样的问题,对我来说这是可行的: 我的解决方案:

  1. 从Relocated Items文件夹复制anaconda3
  2. 粘贴用户名/您的用户名
  3. 使用编辑器打开anaconda3 / bin中的conda文件,并将第一行#!/anaconda3/bin/python修改为#!/Users/YourUserName/anaconda3/bin/python
  4. 保存并运行conda文件
  5. 打开终端
  6. 运行此命令:export PATH=''/Users/YourUserName/anaconda3/bin:$PATH"
  7. 运行conda init zsh

答案 7 :(得分:0)

我遇到了同样的问题,以下解决方案对我有效,这是最简单的解决方案:

与其将混乱的anaconda3文件从重新定位的项目复制到User / USERNAME目录中,不如将其从官方网站上重新安装anaconda navigator的最新版本:https://www.anaconda.com/distribution/#macos

在安装过程中,它会询问您一些由新的Apple安全策略产生的权限,只需授予它们,它的工作方式就如同在全新安装后一样!