如何将所有模块移动到 Python 的新版本(从 3.6 到 3.7)
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
吗?
在某些情况下,我们没有机会在旧版本中pip freeze
——因为我已经更新并且旧版本已被清除!我已经采取了一些措施来恢复一些包,但我不确定每个包都适用于此修复。(例如,用轮子构建的包)
mv /your/path/to/python3.{6,7}/site-packages/
- 如果是安装在 venv 之外的软件包(在
/usr/local/
或 ~/.local
中),为了安全起见,请使用 get-pip.py 重新安装 pip。
- 如果您正在恢复 virtualenv。激活你的 virtualenv 并使用 my script
你的大部分包现在应该可以工作了。如果出现任何故障,pip reinstall
会起作用。如果您仍然希望它 100% 有效,pip freeze
现在。
即使删除了旧的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
顺便说一句,我总是将 pip install
与 --user
一起使用,并将系统范围的安装留给 linux 发行版的包管理器。
由于可能存在兼容性问题,重新安装所有软件包更安全:
pip3.6 list | awk '{print }' | xargs -I{} pip3.7 install {}
我不确定所有模块......但是如果你想专门在 python3.7 中安装模块,试试这个:
python3.7 -m pip install *module_name*
我有一个选择
(不确定是否在 Windows 10 之外工作)
我目前正在从 3.7 迁移到 3.8,我发现重新安装以前的库的方法是使用我拥有的脚本,该脚本通过 pip 安装更新所有包。 (假设您安装了新的 Python 版本作为您的主要版本)这将检查我拥有的所有软件包以及 updates/install 它们在新的 Python 版本中。
注意:我更喜欢运行命令行中的脚本
- 使用文件资源管理器转到您拥有脚本的文件夹;
- 单击路径框,输入“cmd”并按
enter
从您所在的文件夹打开命令行;
- 写“python name_of_your_script.py”然后按
enter
到运行命令。
剧本(改编自this solution):
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(新)
我安装了 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 安装library_name
要么
pip install --user --force-reinstall package_name
要么
pip install --user --force-reinstall package_name == specify_package_version
这些库将安装在 c:\users\USERNAME\anaconda3\lib\site-packages 并被您的新 python 版本识别。
(*)将文件夹添加到PATH:系统属性-->环境变量-->点击“路径”-->编辑-->添加文件夹名称)
旧版本 Python --运行 命令
pip freeze > requirments.txt
在 python 下载并安装更新版本.. 将 PATH 变量更改为新版本
和 运行 命令
pip install -r requirments.txt
我刚刚升级到 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
吗?
在某些情况下,我们没有机会在旧版本中pip freeze
——因为我已经更新并且旧版本已被清除!我已经采取了一些措施来恢复一些包,但我不确定每个包都适用于此修复。(例如,用轮子构建的包)
mv /your/path/to/python3.{6,7}/site-packages/
- 如果是安装在 venv 之外的软件包(在
/usr/local/
或~/.local
中),为了安全起见,请使用 get-pip.py 重新安装 pip。 - 如果您正在恢复 virtualenv。激活你的 virtualenv 并使用 my script
你的大部分包现在应该可以工作了。如果出现任何故障,pip reinstall
会起作用。如果您仍然希望它 100% 有效,pip freeze
现在。
即使删除了旧的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
顺便说一句,我总是将 pip install
与 --user
一起使用,并将系统范围的安装留给 linux 发行版的包管理器。
由于可能存在兼容性问题,重新安装所有软件包更安全:
pip3.6 list | awk '{print }' | xargs -I{} pip3.7 install {}
我不确定所有模块......但是如果你想专门在 python3.7 中安装模块,试试这个:
python3.7 -m pip install *module_name*
我有一个选择
(不确定是否在 Windows 10 之外工作)
我目前正在从 3.7 迁移到 3.8,我发现重新安装以前的库的方法是使用我拥有的脚本,该脚本通过 pip 安装更新所有包。 (假设您安装了新的 Python 版本作为您的主要版本)这将检查我拥有的所有软件包以及 updates/install 它们在新的 Python 版本中。
注意:我更喜欢运行命令行中的脚本
- 使用文件资源管理器转到您拥有脚本的文件夹;
- 单击路径框,输入“cmd”并按
enter
从您所在的文件夹打开命令行; - 写“python name_of_your_script.py”然后按
enter
到运行命令。
剧本(改编自this solution):
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(新)
我安装了 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 安装library_name 要么 pip install --user --force-reinstall package_name 要么 pip install --user --force-reinstall package_name == specify_package_version
这些库将安装在 c:\users\USERNAME\anaconda3\lib\site-packages 并被您的新 python 版本识别。
(*)将文件夹添加到PATH:系统属性-->环境变量-->点击“路径”-->编辑-->添加文件夹名称)
旧版本 Python --运行 命令
pip freeze > requirments.txt
在 python 下载并安装更新版本.. 将 PATH 变量更改为新版本 和 运行 命令
pip install -r requirments.txt