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


12

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

我在这里尝试了以下建议:

嗨,我可能有解决方案

  • 将位于“重定位项”中的文件夹anaconda3复制到/ Users / myname /
  • 开放终端
  • 输入:export PATH =“ /用户/ 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


根据您的错误,您似乎仍在使用bash,但是建议的解决方案是针对的zsh(新的Catalina默认设置)。试试吧conda init bash
MERV

我遇到了同样的错误。bash也不起作用。
凯马尔

Answers:


6

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

将anaconda从“重新定位的项目”移动到之后~/anaconda3,将~/anaconda3/bin/conda文件的第一行从修改#!/anaconda3/bin/python#!/Users/USERNAME/anaconda3/bin/python以反映更改。


1
这会影响点数和Jupyter设置吗?
rrz0

1
这似乎并不能解决与anaconda3和python相关的所有问题。我收到错误消息:无法运行程序"/Users/USER/.virtualenvs/env/bin/python"没有这样的文件或目录。当我在Finder中签入时,文件确实丢失并且无法找到。
rrz0

3

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

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


谢谢你的建议。正如您所说,问题仍然存在virtualenv
rrz0

3
请参阅博客文章,推荐用于解决这些问题的工具:anaconda.com/…–
msarahan,


1

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

几分钟前(现在使用z-shell),这就是我在Catalina上运行的方式:-验证了桌面上“ Relocated Items”目录和“ anaconda3”目录及其内容的存在-导航至envs目录位于“ anaconda3”下,并且打开查找程序窗口(请参见屏幕截图)

在此处输入图片说明

然后:

  • 开设了新的航站楼(z-shell)
  • 运行(已安装到/ usr / local / anaconda3):

    酿造桶安装蟒蛇

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

    导出PATH =“ / usr / local / anaconda3 / bin:$ PATH”

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

    源〜/ .zshrc

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

    conda环境列表

  • 对我来说,这显示了一个基本的环境,就是这样

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

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

    conda环境列表

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

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

感谢您的建议。这virtualenv也有用吗?我有一些virtualenvs我在Pycharm中无法使用的东西,因为我不断得到`错误:无法运行程序“ /Users/USER/.virtualenvs/baseline_env/bin/python”没有这样的文件或目录。在Finder中我也得到了"The original item python cannot be found.
rrz0

1
请参阅博客文章,推荐用于修复更多断开连接的工具:anaconda.com/…–
msarahan,

1
基于您所写内容的@ Rrz0我猜到virtualenv的路径是错误的。它很hacky,但是如果您能进入virtualenv,我想您应该能够复制它的路径并编辑PyCharm中的条目(如果virtualenvs在已移动物品交易中,那么我不确定在哪里建议您这样做放入它们)-如果可以使用旧的virtualenv,则可以(逐个)从shell激活它们并运行:pip Frozen> requirements_VENV_NAME.txt-在PyCharm中创建新的virtualenvs-激活每个新的virtualenv并运行:pip install- r requirements_VENV_NAME.txt
Phil S,

谢谢@PhilS,类似的事情最终奏效了。
rrz0


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

例如,是否需要进行进一步更改以使python也能正常工作virtualenv
rrz0

0

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

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

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


0

这对我有用。

这些是我的头文件(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.sdkMacOSX_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。希望这可以帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.