【问题标题】:Accessing pip packages from Anaconda从 Anaconda 访问 pip 包
【发布时间】:2021-02-28 01:09:21
【问题描述】:

我最近更新了我的 macOS 版本,不得不重新安装 Anaconda。我一直尝试通过pip 安装软件包,以便无论是使用 Anaconda(特别是 Spyder)还是在终端中执行文件(没有 Anaconda,例如 python myfile.py)都可以访问它们。但是,重新安装后,Anaconda 似乎无法访问通过pip 而不是通过conda 安装的软件包。

我知道我可以在 Anaconda 中激活给定环境,然后使用 pip 为该环境安装软件包,但我正在寻找对软件包的全局访问权限,这样我就不必安装多个软件包次。

是否有解决方法使pip 包可以被普遍访问?

编辑:当我在 macOS 上安装 Python 3 时,我按照此处的指南进行操作:https://opensource.com/article/19/5/python-3-default-mac#what-to-do

【问题讨论】:

  • 你用的是同一个python版本吗?
  • 是的,我可以运行pip --version,这表明:/Users/myusername/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pip (python 3.8)。然后在 Spyder 中运行sys.version,它也显示3.8.3。如果有帮助,这是我遵循的指南,以确保我使用的是 Python 3 而不是 2:opensource.com/article/19/5/python-3-default-mac#what-to-do
  • 尝试conda install pip(一次)然后pip install <package>。请参阅docs.conda.io/projects/conda/en/latest/user-guide/tasks/… 中的“安装非 conda 包”。
  • 如果您按照本教程正确操作。也许您必须从​​以前的 conda env 中导出模块并将其导入新的。
  • 我尝试卸载软件包,运行conda install pip,然后重新安装,但仍然出现同样的错误。我使用pip list 验证了该软件包已安装在正确版本的 pip 中。

标签: python pip anaconda


【解决方案1】:

我以前也遇到过同样的问题。我只是分享我的解决方案。如果您认为这没有帮助。您可以发表评论,然后我可以删除答案。

写在前面,我的解决方案放弃了anaconda pip和默认系统pip。如果你只想使用 anaconda。然后只需阅读我的解决方案作为知识补充或跳过我的答案。

在我的理解中,你需要一种方法来控制你的 python 环境。然后你可以在任何计算机上构建相同的环境。

首先,使用anaconda管理python版本。

你可以使用

conda create --name python3.6 python=3.6

创建特定的python。

然后使用

conda activate python3.6

激活特定版本python3.6。您可以将其添加到您的 .bashrc 以自动激活特定版本。

其次,安装虚拟环境管理工具。我通常使用 pipenv。安装它

pip install pipenv

第三,为你的项目创建虚拟环境。

cd your project folder
pipenv shell
pipenv install --skip-lock your package

然后你会看到它在你的项目下生成了一个 pipfile。如果您通过将项目上传到 github 或其他方式来保留它。然后你可以像这样构建任何机器的虚拟环境:

  1. 安装 conda。
  2. 激活特定版本的python并安装pipenv。
  3. git clone 你的项目并 cd 进入它。
  4. pipenv 外壳
  5. pipenv install --skip-lock.

然后你会得到和pipfile一样的环境。

【讨论】:

    【解决方案2】:

    您似乎在 Spyder 和终端中使用不同的 Python 安装。因此,在终端中使用pip 安装的软件包在 Spyder 中将不可见,反之亦然。如果您想在两者中访问相同的包,最好的解决方案是在终端中激活 Anaconda Python(或其特定的 conda 环境)。

    您可以在终端中通过运行conda init 自动激活Anaconda(它会将激活命令包含在您的~/.bashrc 文件中)。

    【讨论】:

    • 有没有办法 1) 使终端默认为 Anaconda 安装(不破坏任何东西)或 2) 从 Spyder 访问终端安装?我现在主要只是想节省空间,因为某些包(例如 tensorflow)非常大。我还从节点子进程运行一些文件,但我在 Spyder 中编辑/测试它们,尽管我想我可以尝试通过子进程激活 Anaconda。
    • 我认为您想要的是创建一个新的 conda 环境,您可以在其中安装 spyder 和 tensorflow。这样安装 tensorflow 就不会破坏你的系统 Python。当你想使用 tensorflow 时,首先在终端中激活 conda 环境。如果你想使用 Spyder,你可以使用命令spyder 启动它。
    猜你喜欢
    • 2021-01-02
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2019-05-24
    • 2020-08-23
    • 1970-01-01
    • 2020-05-10
    相关资源
    最近更新 更多