[英]How to move all modules to new version of Python (from 3.6 to 3.7)
我刚刚升级到python 3.7
,我意识到我的所有模块都停留在以前的版本中。 甚至 Django 也不再被识别。 我该怎么做才能将所有内容转移到新版本? 我现在有点迷茫,甚至不知道新版本安装在哪里。
编辑:
当我执行$ which python3.6
,终端告诉我它不存在,但我在/usr/local/lib/
有一个python3.6
目录,其中安装了所有模块。
在同一目录/usr/local/lib/
我还有一个python3.7
目录,其中安装了一些模块,但很多都丢失了。 但是,当我在查找器中搜索文件python3.7
,它没有出现。 当我执行$ which python3.7
,路径是/usr/local/bin
所以与目录的路径不同。
任何人都看到发生了什么并知道如何将所有模块转移到python3.7
?
即使删除了旧的python版本,也可以使用当前python版本的pip和--path
选项来列出以前版本中安装的所有模块。
例如,将我所有用户安装的 python 模块从 3.7 迁移到 3.8
pip freeze --path ~/.local/lib/python3.7/site-packages > requirements.txt
pip install --user -r requirements.txt
顺便说一句,我总是使用带有--user
pip install
并将系统范围的安装留给我的 linux 发行版的包管理器。
由于可能存在兼容性问题,重新安装所有软件包会更安全:
pip3.6 list | awk '{print $1}' | xargs -I{} pip3.7 install {}
在旧版本的 Python 中 --运行命令
pip freeze > requirments.txt
在 python 上下载并安装新版本。将 PATH 变量更改为新版本并运行命令
pip install -r requirments.txt
在某些情况下,我们没有机会在旧版本中pip freeze
- 因为我已经更新并且旧版本已被清除! 我已经采取了一些措施来恢复一些包,但我不确定每个包都可以使用此修复程序。(例如使用轮子构建的包)
mv /your/path/to/python3.{6,7}/site-packages/
/usr/local/
或~/.local
),请使用get-pip.py重新安装 pip ,以确保安全。你的大部分包现在应该可以工作了。 如果出现任何故障, pip reinstall
将起作用。 如果您仍然希望它 100% 有效,请立即pip freeze
pip。😉
我不确定所有模块……但是如果你想在 python3.7 中专门安装一个模块,试试这个:
python3.7 -m pip install *module_name*
我有一个替代方案
(不确定是否适用于Windows 10之外)
我目前正在从 3.7 迁移到 3.8,我发现重新安装以前的库的方法是使用我通过 pip install 更新所有包的脚本。 (假设您安装了新的 Python 版本作为主版本)这会检查我拥有的所有软件包并在新的 Python 版本中更新/安装它们。
注意:我更喜欢从命令行运行脚本
enter
“cmd”并enter
,从你所在的文件夹打开命令行;enter
键运行命令。脚本(改编自此解决方案):
import pkg_resources
from subprocess import call
packages = [dist.project_name for dist in pkg_resources.working_set]
[call("pip install " + name + " --upgrade") for name in packages]
我遇到了类似的问题,现在我从 python 3.7 升级到 python 3.8 (new)
我安装了 Python 3.8,但系统将 python37 子文件夹与已安装的包(...\\Python37-32\\Lib\\site-packages)一起保留,即使创建了 Pyhton38 子文件夹,并带有新的 python.exe。
通常,可以在新 Python 版本上继续使用旧库,因为现有库安装文件夹已在本地计算机系统路径 (*) 中注册。
尽管如此,我还是在使用某些库时遇到了问题(有些在 Jupyter Notebook 中有效,但在 Spyder 中无效)。 我尝试了其他人提出的迁移库的替代方案,但没有奏效(也许我没有
所以我使用了残酷的力量解决方案..一点也不优雅,但它有效:
从系统路径中删除旧的 python 版本文件夹,甚至删除文件夹本身。 文件夹:C:\\Users\\USERNAME\\AppData\\Roaming\\Python\\Python37 C:\\Users\\USERNAME\\AppData\\Local\\Programs\\Python \\Python37
重新安装您需要的软件包,最好通过 Anaconda 提示。 python -mpip install library_name或 pip install --user --force-reinstall package_name或 pip install --user --force-reinstall package_name == 指定_package_version
这些库将安装在 c:\\users\\USERNAME\\anaconda3\\lib\\site-packages 并被您的新 Python 版本识别。
(*) 将文件夹添加到PATH:系统属性-->环境变量-->点击“路径”-->编辑-->添加文件夹名称)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.