切换 Homebrew 安装的 Python 版本(3.9 → 3.8)

2023-11-21

这是一个非常相似的情况此处描述,但反之亦然。我通过 Homebrew 安装了 Python 3.8 并将其更新为 3.9:

% brew list --formula | grep python
[email protected]
[email protected]

我想使用 Python 3.8 作为我的默认版本python3命令和尝试 – 灵感来自这个答案- 下列:

brew unlink [email protected]
brew unlink [email protected]
brew link [email protected]

最后给了我以下输出:

% brew link [email protected]
Linking /usr/local/Cellar/[email protected]/3.8.6_2... 
Error: Could not symlink bin/pip3
Target /usr/local/bin/pip3
already exists. You may want to remove it:
  rm '/usr/local/bin/pip3'

To force the link and overwrite all conflicting files:
  brew link --overwrite [email protected]

To list all files that would be deleted:
  brew link --overwrite --dry-run [email protected]

所以我做了:

% brew link --overwrite --dry-run [email protected]
Would remove:
/usr/local/bin/pip3

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc

我认为首先检查一下是个好主意:

ralf@razbook ~ % brew link --force --dry-run [email protected]
Would link:
/usr/local/bin/2to3
/usr/local/bin/2to3-3.8
/usr/local/bin/easy_install-3.8
/usr/local/bin/idle3
/usr/local/bin/idle3.8
/usr/local/bin/pip3
/usr/local/bin/pip3.8
/usr/local/bin/pydoc3
/usr/local/bin/pydoc3.8
/usr/local/bin/python3
/usr/local/bin/python3-config
/usr/local/bin/python3.8
/usr/local/bin/python3.8-config
/usr/local/bin/wheel3
/usr/local/share/man/man1/python3.1
/usr/local/share/man/man1/python3.8.1
/usr/local/lib/pkgconfig/python-3.8-embed.pc
/usr/local/lib/pkgconfig/python-3.8.pc
/usr/local/lib/pkgconfig/python3-embed.pc
/usr/local/lib/pkgconfig/python3.pc
/usr/local/Frameworks/Python.framework/Headers
/usr/local/Frameworks/Python.framework/Python
/usr/local/Frameworks/Python.framework/Resources
/usr/local/Frameworks/Python.framework/Versions/3.8
/usr/local/Frameworks/Python.framework/Versions/Current

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc

听起来不错,所以让我们这样做:

 % brew link --force [email protected] 
Linking /usr/local/Cellar/[email protected]/3.8.6_2... 
Error: Could not symlink bin/pip3
Target /usr/local/bin/pip3
already exists. You may want to remove it:
  rm '/usr/local/bin/pip3'

To force the link and overwrite all conflicting files:
  brew link --overwrite [email protected]

To list all files that would be deleted:
  brew link --overwrite --dry-run [email protected]

不幸的是我跳过了试运行:

 % brew link --overwrite [email protected]
Linking /usr/local/Cellar/[email protected]/3.8.6_2... 25 symlinks created

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc

有些东西似乎起作用了:

% python3 --version
Python 3.8.6
% pip3 --version
pip 20.2.4 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)

但仍然有一些pipenv错了:

% pipenv install google-ads
Warning: Python 3.9 was not found on your system...
Neither 'pyenv' nor 'asdf' could be found to install Python.
You can specify specific versions of Python with:
$ pipenv --python path/to/python

也许我应该重新安装pipenv?

% which pipenv
/usr/local/bin/pipenv

% pip3 uninstall pipenv
Found existing installation: pipenv 2020.8.13
Uninstalling pipenv-2020.8.13:
  Would remove:
    /usr/local/bin/pipenv
    /usr/local/bin/pipenv-resolver
    /usr/local/lib/python3.8/site-packages/pipenv-2020.8.13.dist-info/*
    /usr/local/lib/python3.8/site-packages/pipenv/*
Proceed (y/n)? y
  Successfully uninstalled pipenv-2020.8.13

% pip3 install pipenv
Collecting pipenv
  Downloading pipenv-2020.11.15-py2.py3-none-any.whl (3.9 MB)
     |████████████████████████████████| 3.9 MB 2.9 MB/s 
Requirement already satisfied: pip>=18.0 in /usr/local/lib/python3.8/site-packages (from pipenv) (20.2.4)
Requirement already satisfied: virtualenv in /usr/local/lib/python3.8/site-packages (from pipenv) (20.0.31)
Requirement already satisfied: setuptools>=36.2.1 in /usr/local/lib/python3.8/site-packages (from pipenv) (50.3.2)
Requirement already satisfied: certifi in /usr/local/lib/python3.8/site-packages (from pipenv) (2020.6.20)
Requirement already satisfied: virtualenv-clone>=0.2.5 in /usr/local/lib/python3.8/site-packages (from pipenv) (0.5.4)
Requirement already satisfied: distlib<1,>=0.3.1 in /usr/local/lib/python3.8/site-packages (from virtualenv->pipenv) (0.3.1)
Requirement already satisfied: filelock<4,>=3.0.0 in /usr/local/lib/python3.8/site-packages (from virtualenv->pipenv) (3.0.12)
Collecting six<2,>=1.9.0
  Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Requirement already satisfied: appdirs<2,>=1.4.3 in /usr/local/lib/python3.8/site-packages (from virtualenv->pipenv) (1.4.4)
Installing collected packages: pipenv, six
Successfully installed pipenv-2020.11.15 six-1.15.0

但仍然:

% pipenv install google-ads
Warning: Python 3.9 was not found on your system...
Neither 'pyenv' nor 'asdf' could be found to install Python.
You can specify specific versions of Python with:
$ pipenv --python path/to/python

实际上不行,但是让我们声明应该使用哪个Python pipelinev:

% pipenv --python /usr/local/opt/[email protected]/bin/python3 install google-ads
Creating a virtualenv for this project...
Pipfile: /Users/ralf/code/test_snippets/20-12-10_google_ads/Pipfile
Using /usr/local/opt/[email protected]/bin/python3 (3.8.6) to create virtualenv...
⠦ Creating virtual environment...created virtual environment CPython3.8.6.final.0-64 in 362ms
  creator CPython3Posix(dest=/Users/ralf/.local/share/virtualenvs/20-12-10_google_ads-S7vGVfKj, clear=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/ralf/Library/Application Support/virtualenv)
    added seed packages: pip==20.2.4, setuptools==50.3.2, wheel==0.35.1
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

✔ Successfully created virtual environment! 
Virtualenv location: /Users/ralf/.local/share/virtualenvs/20-12-10_google_ads-S7vGVfKj
Warning: Your Pipfile requires python_version 3.9, but you are using 3.8.6 (/Users/ralf/.local/share/v/2/bin/python).
  $ pipenv --rm and rebuilding the virtual environment may resolve the issue.
  $ pipenv check will surely fail.
Warning: Your Pipfile requires python_version 3.9, but you are using 3.8.6 (/Users/ralf/.local/share/v/2/bin/python).
  $ pipenv --rm and rebuilding the virtual environment may resolve the issue.
  $ pipenv check will surely fail.
Installing google-ads...

pipenv --rm重建虚拟环境没有帮助。 (我什至考虑简单地卸载 Python 3.9 并再次安装 Python 3.8 – 但是不知道怎么办.)

有没有办法说服 Pipenv 使用 Python 3.8?


好吧,有时提出问题有助于自己找到解决方案——顺便说一下,这是 StackOverflow 的伟大之处之一。

提示在pipenv的警告中:“Your Pipfile require python_version 3.9”。

我只是做了

rm Pipfile
rm Pipfile.lock

然后它起作用了:

pipenv install google-ads

嗯,至少pipenv与 Python 3.8 一起正常工作。仍然存在一个问题google-ads,但那是另一个故事.

也许就足够了change管道文件:

[requires]
python_version = "3.8"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

切换 Homebrew 安装的 Python 版本(3.9 → 3.8) 的相关文章

  • 并行 dask for 循环比常规循环慢?

    如果我尝试使用 dask 并行化 for 循环 它最终会比常规版本执行得慢 基本上 我只是按照 dask 教程中的介绍性示例进行操作 但由于某种原因它在我这边失败了 我究竟做错了什么 In 1 import numpy as np from
  • 如何在多进程系统中实现锁定?

    我们正在并行运行许多詹金斯项目 我们使用 python 并且选择使用 pyenv 管理虚拟环境 不幸的是 pyenv 有一个众所周知的竞争条件 https github com yyuu pyenv issues 174 为了解决这个问题
  • 如何使用 Python 3 绕过 HTTP Error 403: Forbidden with urllib.request

    您好 不是每次都这样 但有时在尝试访问 LSE 代码时 我会收到每一个烦人的 HTTP 错误 403 禁止消息 任何人都知道我如何仅使用标准 python 模块来克服这个问题 遗憾的是没有漂亮的汤 import urllib request
  • 从文本文件中删除特定字符

    我对 Python 和编码都很陌生 我当时正在做一个小项目 但遇到了一个问题 44 1 6 23 2 7 49 2 3 53 2 1 68 1 6 71 2 7 我只需要从每行中删除第三个和第六个字符 或者更具体地说 从整个文件中删除 字符
  • 稀有对象的 python 类型注释,例如 psycopg2 对象

    我了解内置类型 但是我如何指定稀有对象 例如数据库连接对象 def get connection and cursor gt tuple psycopg2 extensions cursor psycopg2 extensions conn
  • 是否可以从 Julia 调用 Python 函数并返回其结果?

    我正在使用 Python 从网络上抓取数据 我想使用这些数据在 Julia 中运行计算 是否可以在 Julia 中调用该函数并返回其结果 或者我最好直接导出到 CSV 并以这种方式加载数据 绝对地 看PyCall jl https gith
  • 从 Azure ML 实验中访问 Azure Blob 存储

    Azure ML 实验提供了通过以下方式读取 CSV 文件并将其写入 Azure Blob 存储的方法 Reader and Writer模块 但是 我需要将 JSON 文件写入 blob 存储 由于没有模块可以执行此操作 因此我尝试在Ex
  • 使用 Boto3 以字符串形式打开 S3 对象

    我知道使用 Boto 2 可以使用以下命令将 S3 对象作为字符串打开 get contents as string http boto readthedocs org en latest ref file html highlight c
  • 无法在 selenium 和 requests 之间传递 cookie,以便使用后者进行抓取

    我用 python 结合 selenium 编写了一个脚本来登录网站 然后从driver to requests这样我就可以继续使用requests进行进一步的活动 I used item soup select one div class
  • 创建上下文后将 jar 文件添加到 pyspark

    我正在笔记本上使用 pyspark 并且不处理 SparkSession 的创建 我需要加载一个包含一些我想在处理 rdd 时使用的函数的 jar 您可以使用 jars 轻松完成此操作 但在我的特定情况下我无法做到这一点 有没有办法访问sp
  • 如何确保 re.findall() 停止在正确的位置?

    这是我的代码 a import re re findall r lt title gt lt title gt a 结果是 title aaa
  • 给定一个排序数组,就地删除重复项,使每个元素仅出现一次并返回新长度

    完整的问题 我开始在线学习 python 但对这个标记为简单的问题有疑问 给定一个排序数组 就地删除重复项 使得每个 元素只出现一次并返回新的长度 不分配 另一个数组的额外空间 您必须通过修改输入来完成此操作 数组就地 具有 O 1 额外内
  • Ubuntu systemd 自定义服务因 python 脚本而失败

    希望获得有关 Ubuntu 中的 systemd 守护进程服务的一些帮助 我写了一个 python 脚本来禁用 Dell XPS 上的触摸屏 这更像是一个问题 而不是一个有用的功能 该脚本可以工作 但我不想一直启动它 这就是为什么我想到编写
  • 在骨架图像中查找线 OpenCV python

    我有以下图片 我想找到一些线来进行一些计算 平均长度等 我尝试使用HoughLinesP 但它找不到线 我能怎么做 这是我的代码 sk skeleton mask rows cols sk shape imgOut np zeros row
  • Python 中维基百科 API 中的 DisambiguationError 和 GuessedAtParserWarning

    我想获得维基百科与搜索词相关的可能且可接受的名称列表 在这种情况下是 电晕 当输入以下内容时 print wikipedia summary Corona 这给出了以下输出 home virej local lib python3 8 si
  • 为什么 __dict__ 和 __weakref__ 类从未在 Python 中重新定义?

    类创建似乎从来没有re 定义 dict and weakref class属性 即 如果它们已经存在于超类的字典中 则它们不会添加到其子类的字典中 但始终re 定义 doc and module class属性 为什么 gt gt gt c
  • minizinc python 安装

    我通过 anaconda 提示符在 python 上安装了 minizinc 就像其他软件包一样 pip install minizinc 该软件包表示已成功安装 我可以导入该模块 但是 我正在遵循基本示例https minizinc py
  • 如何给URL添加变量?

    我正在尝试从网站收集数据 我有一个 Excel 文件 其中包含该网站的所有不同扩展名 F i www example com example2 我有一个脚本可以成功从网站中提取 HTML 但现在我想为所有扩展自动执行此操作 然而 当我说 s
  • 如何使用 python 定位和读取 Data Matrix 代码

    我正在尝试读取微管底部的数据矩阵条形码 我试过libdmtx http libdmtx sourceforge net 它有 python 绑定 当矩阵的点是方形时工作得相当好 但当矩阵的点是圆形时工作得更糟 如下所示 另一个复杂问题是在某
  • IndexError - 具有匀称形状的笛卡尔 PolygonPatch

    我曾经使用 shapely 制作一个圆圈并将其绘制在之前填充的图上 这曾经工作得很好 最近 我收到索引错误 我将代码分解为最简单的操作 但它甚至无法执行最简单的循环 import descartes import shapely geome

随机推荐

  • 连接管理器 unregisterNetworkCallBack 已取消注册

    在我的 Android 应用程序中 我正在取消注册活动的网络回调 onPause 有时我会遇到错误 原因是 java lang IllegalArgumentException NetworkCallback was already unr
  • Django 中的 URL 路径参数与查询参数

    我已经环顾了一段时间 似乎找不到任何涉及差异的东西 正如标题所述 我试图找出通过 url 路径参数获取数据的区别 例如 content 7然后在 urls py 中使用正则表达式 并从查询参数中获取它们 例如 content num 7 u
  • ASP.NET -- IIS7 -- IBM DB2 问题

    我正在开发一个调用 DB2 数据库的 ASP NET 网站 我在将托管该站点的 Windows 2008 服务器上安装了 Visual Studio 当我使用集成 Web 服务器在 Visual Studio 中调试站点时 我可以连接到数据
  • 将 NSAttributedString 添加到 UIBarButtonItem

    我正在尝试在后栏按钮项目上设置属性字符串 这是我第一次尝试属性字符串 这是代码 self navigationItem hidesBackButton true let barButtonBackStr lt Back var attrib
  • 用作索引器键的打字稿文字类型

    有没有什么方法可以定义可以用作索引器中的字符串键的打字稿文字类型 type TColorKey dark light interface ColorMap period TColorKey Color 这会引发错误 An index sig
  • 在执行shell中获取Jenkins环境变量

    我想知道是否可以在配置构建中的执行 shell 内访问 Jenkins 环境变量 如果是这样 你能给我举个例子吗 我需要将环境信息与测试的一些输出结合起来 以提供完整的运行报告 不使用插件 Please check http yourjen
  • 使用 HTML5 和 JavaScript 从视频中捕获帧

    我想每 5 秒从视频中捕获一帧 这是我的 JavaScript 代码 video addEventListener loadeddata function var duration video duration var i 0 var in
  • 如何在猫鼬模型上使用partialFilterExpression

    我创建了一个带有电子邮件字段的猫鼬模型 如果用户提供了值 我希望它是唯一的 但如果用户未提供任何值 我希望它为空 我在这里找到了一个很好的 mongodb 参考 https docs mongodb com manual core inde
  • Python Pandas 动态创建 Dataframe

    下面的代码将生成所需的输出ONEdataframe 但是 我想在 FOR 循环中动态创建数据帧 然后将移位后的值分配给该数据帧 例如 数据帧 df lag 12 将仅包含column1 t12 和column2 12 任何想法将不胜感激 我
  • Android 蓝牙socket非阻塞通信教程

    我正在寻找 Android 上的蓝牙示例代码来进行非阻塞套接字通信 我找到了几个例子 例如BluetoothChat或BluetoothSocket java 但没有一个是non blocking socket communication
  • keybd_event KEYEVENTF_EXTENDEDKEY 需要解释

    In 文档它说 KEYEVENTF EXTENDEDKEY 0x0001 如果指定 则扫描码前面有一个值为 0xE0 224 的前缀字节 有人可以解释这是什么意思吗 这有什么区别 keybd event RIGHT 0 0 0 keybd
  • 确保 C# 中的多播委托执行列表顺序?

    经过一些阅读后 我了解到处理程序调用顺序与订阅顺序相同 但不能保证 所以可以说我有 public event MYDEl ev 订阅者会 ev GetPaper ev Print ev EjectPaper 保留 确保执行列表顺序的最佳实践
  • Android studio 3.0 无法上传仅测试的 apk

    我刚刚将我的旧项目更新为 as3 0 并构建并签署了我的应用程序 当我想上传到谷歌播放后 您不能上传仅测试 apk 有什么帮助吗 这是Android Studio 3 0的新功能 当您在 Android Studio 中按 运行 按钮执行任
  • 使用 flutter_local_notifications 和位置包时出现 flutter 错误“Android dependency 'androidx.core:core' has different version”

    美好的一天 我尝试制作一个带有 Android 和 ios 通知的简单天气应用程序 为此我使用基础 flutter 应用程序和库flutter local notifications 0 5 1 2 and location 2 0 0 但
  • 为什么maven项目有一个src文件夹,其中有两个空的子文件夹(main和test)

    我是java世界的新手 我创建了一个简单的 java maven 项目 我看到了包 一切都运行良好 但是我确实看到一个 src 有两个空的主文件夹和测试文件夹 知道为什么吗 编辑 在答案中添加更多信息 下面的答案很完美 然而 经过更多的修改
  • 将批处理文件中的修改文件日期与当前日期进行比较

    我需要编写一个批处理文件来做一些事情 最初我认为我的问题非常简单 捕获位于指定目录中的 txt 文件的修改日期 将该日期与当前日期进行比较 如果它们相同则执行某些操作 如果不是 那就做其他事情 我用来捕获当前日期的行是 date 我用来捕获
  • 如何为本地化应用程序加载 XIB?

    我发现在模拟器上成功运行和调试本地化应用程序几天后 它 或 XCode 部署过程 进入了一种状态 如果模拟器设置为我支持的本地语言之一 它会在启动时崩溃以下堆栈 3 CoreFoundation 0x01780e6a NSException
  • Postgresql 运算符类“varchar_pattern_ops”不接受数据类型整数

    我正在尝试将我的数据 id postgresql 从字符串迁移到 django 中的整数 以便在 sphinx 搜索中使用它们 所以首先我正在进行数据迁移 将我的数据转换为字符串中的整数 如下所示 db execute UPDATE the
  • Docker 运行正常但 docker ps 没有显示任何内容

    docker run无法在我的机器上运行 Ubuntu 16 04 很可能docker run确实有效 但由于您没有指定任何要运行的命令 容器在启动后就停止工作 和docker ps a您应该会看到一些已退出的 ubuntu 容器 如果您将
  • 切换 Homebrew 安装的 Python 版本(3.9 → 3.8)

    这是一个非常相似的情况此处描述 但反之亦然 我通过 Homebrew 安装了 Python 3 8 并将其更新为 3 9 brew list formula grep python email protected email protect