切换 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) 的相关文章

  • 使用Python开发Web应用程序

    我一直在用 python 做一些工作 但这都是针对独立应用程序的 我很想知道 python 的任何分支是否支持 Web 开发 有人还会建议一个好的教程或网站吗 我可以从中学习一些使用 python 进行 Web 开发的基础知识 既然大家都说
  • Python BigQuery 存储。并行读取多个流

    我有以下玩具代码 import pandas as pd from google cloud import bigquery storage v1beta1 import os import google auth os environ G
  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代

随机推荐

  • 连接管理器 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