Linux安装Python各个版本,建议收藏

网上在Linux上安装Python的方法不少,但是大多都比较麻烦,需要很多步骤,看着就头皮发麻。并且很多文章都说了怎么一步步的安装,但原理什么的,讲的比较少,这对于初学者来说,就会在出现问题时,无法解决。
下面的方法,是本人认为比较简单,并且能更好去理解Python原理,更好操作,不容易出错的方法。

一、Linux安装Python

1、安装依赖包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel


上面的命令直接复制,运行就行了

2、下载Python安装包
1、选择正确的安装包

1)Python的安装包网址为:https://www.python.org/ftp/python/3.8.0/
对于这个网址,我们拆解一下:

  • https://www.python.org/ftp/python/ 是各版本路径,访问后的截图为:
    在这里插入图片描述
    可以看到这是Python各版本安装包的集合
  • 3.8.0/:Python的版本

所以当我们需要安装什么版本的安装包,直接去路径中,下载即可
好比,下载3.9.7的版本:则路径为:https://www.python.org/ftp/python/3.9.7/

2、下载自己需要的安装包

例如:https://www.python.org/ftp/python/3.9.7/的网页为:
在这里插入图片描述
我们下载 .tgz 文件即可「Windows则安装exe程序,mac安装pkg」,下载命令为:

wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz


3、解压
tar -zxvf Python-3.9.7.tgz


解压后,如下图:
在这里插入图片描述

4、安装
cd Python-3.9.7
./configure --prefix=/usr/local/python3
make && make install


上面的命令一行行的来,先到安装包目录,然后安装, 等待安装运行结束

5、建立软连接
1)软连接命令
ln -s /usr/local/python3/bin/python3.9 /usr/bin/python
ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip


2)软命令说明

注意:这个地方是重点,一个是连接python运行位置,另一个则连接着pip的运行位置
通俗的说,这个软连接的作用,就是告诉系统,python和pip在哪呢!

我个人比较习惯使用python、pip,不习惯使用python3、pip3,所以我软连接设置的为 /usr/bin/python/usr/bin/pip

命令中的 /usr/bin/python/usr/bin/pip 是大部分机器的位置,那怎么确定你的机器的具体位置是哪呢?「确定python和pip的方法一样,以python为例」

① 确定python和pip的运行位置
where python
where pip


在这里插入图片描述在这里插入图片描述
cd 到查询出的命令路径下,查看对应的python和pip的软连接状态:

where python
cd 路径
# 查看python的具体软连接信息,注意加上 *
la python*  


如下图:
在这里插入图片描述
如果您软连接指向的路径不是python3.9的,则进行②步骤

② 设置软连接

首先cd到where命令查出的路径,然后删除当前的软连接,重新设置,操作步骤如下图:
在这里插入图片描述

如果where命令执行之后,出现多个路径,那就去尝试每个路径,直至确定哪个路径才是真正的发挥作用

上面的方法,可用于切换Python版本,我们可以让Linux上拥有多个Python版本,需要用到哪个版本,我们就软连接到哪个版本

本机的Python版本均在 /usr/local/python3/bin 路径下:

当我们需要新的版本时,重复1到4步骤,即会在 /usr/local/python3/bin 目录下创建新的版本文件,而我们不用的版本也不需删除,只需切换软连接即可,这就是Python版本切换的精髓,而在Windows上则是通过设置环境变量来进行实现。
在这里插入图片描述

6、运行python,查看是否可用

在这里插入图片描述
如果出现上面的图面,说明你安装成功了,恭喜你。

二、Python运行的其他问题

1、“ModuleNotFoundError: No module named ‘_bz2’”
Traceback (most recent call last):
  File "stat_model.py", line 1, in <module>
    from torchstat import stat
  File "/usr/local/lib/python3.7/site-packages/torchstat/__init__.py", line 11, in <module>
    from torchstat.reporter import report_format
  File "/usr/local/lib/python3.7/site-packages/torchstat/reporter.py", line 1, in <module>
    import pandas as pd
  File "/usr/local/lib/python3.7/site-packages/pandas/__init__.py", line 55, in <module>
    from pandas.core.api import (
  File "/usr/local/lib/python3.7/site-packages/pandas/core/api.py", line 24, in <module>
    from pandas.core.groupby import Grouper, NamedAgg
  File "/usr/local/lib/python3.7/site-packages/pandas/core/groupby/__init__.py", line 1, in <module>
    from pandas.core.groupby.generic import (  # noqa: F401
  File "/usr/local/lib/python3.7/site-packages/pandas/core/groupby/generic.py", line 44, in <module>
    from pandas.core.frame import DataFrame
  File "/usr/local/lib/python3.7/site-packages/pandas/core/frame.py", line 88, in <module>
    from pandas.core.generic import NDFrame, _shared_docs
  File "/usr/local/lib/python3.7/site-packages/pandas/core/generic.py", line 70, in <module>
    from pandas.io.formats.format import DataFrameFormatter, format_percentiles
  File "/usr/local/lib/python3.7/site-packages/pandas/io/formats/format.py", line 48, in <module>
    from pandas.io.common import _expand_user, _stringify_path
  File "/usr/local/lib/python3.7/site-packages/pandas/io/common.py", line 3, in <module>
    import bz2
  File "/usr/local/lib/python3.7/bz2.py", line 19, in <module>
    from _bz2 import BZ2Compressor, BZ2Decompressor
ModuleNotFoundError: No module named '_bz2'


问题原因:
bz2这个库找不到了,看其他博客说是安装Python时bz库,即“_bz2.cpython-36m-x86_64-linux-gnu.so” 安装错了位置
解决方法:
1、查找 _bz2.cpython 文件

sudo find / -name "_bz2.cpython-*"


2、切换到python版本对应路径,将该文件复制到该目录下:

cd /usr/local/python3/lib/python3.9/lib-dynload

sudo cp /usr/lib64/python3.6/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so ./


3、修改文件名称,将"-36m"修改为"-39"即可「和同目录的其他文件命名保持统一」:

sudo mv ./_bz2.cpython-36m-x86_64-linux-gnu.so ./_bz2.cpython-39-x86_64-linux-gnu.so


运行如下图:
在这里插入图片描述

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析学习等教程。带你从零基础系统性的学好Python!

1.Python大礼包

2.Python电子书

3.Python面试集锦

4.Python小白必备手册

5.Python安装包

6.数据分析全套资源

7.数据分析全套资源

最后由于文章篇幅有限,文档资料内容较多,需要这些文档的朋友,可以加小助手微信免费获取,【保证100%免费】,中国人不骗中国人。在这里插入图片描述

希望这篇文章对你有帮助,也希望能帮到大家,因为你我都是热爱python的编程语言爱好者。

<think>嗯,用户遇到了程序运行时提示“程序入口点未在动态链接库中找到”的错误,具体是“program entry point not found in dll solution ***.exe”。我需要先理解这个错误的原因,然后给出解决方案。首先,这个错误通常发生在程序尝试调用DLL中的某个函数,但该函数不存在于DLL中。可能的原因包括DLL版本不匹配、安装损坏、或程序与DLL的依赖关系问题。 根据用户提供的引用内容,引用[3]提到非托管DLL不能直接从字节流加载,可能需要正确部署。而引用[2]指出DLL的加载与进程类型有关,比如GUI应用使用user32.dll,而CUI应用可能不会。这可能影响DLL的注入和加载路径。 首先,我应该建议用户检查DLL文件的版本和完整性,确保与程序要求的版本一致。可能需要重新安装相关软件或运行时库,比如Visual C++ Redistributable。然后,检查系统环境变量中的路径是否正确,确保程序能找到正确的DLL。如果DLL被捆绑在EXE中,可能需要正确解压或引用,如引用[3]中的方法。 另外,依赖项的问题也可能导致此错误,使用Dependency Walker或类似的工具分析DLL的导出函数,确认所需入口点是否存在。如果问题出在32位和64位不兼容,需要确保程序与DLL的架构一致。此外,注册DLL可能在某些情况下有效,但需注意DLL是否设计为可注册。 最后,用户可能需要联系软件供应商获取更新版本的DLL,或者开发者需要重新编译程序以正确链接依赖项。总结步骤时,要分点清晰,逐步引导用户排查可能的原因,并提供具体的操作方法。</think>针对程序运行时提示"程序入口点未在动态链接库中找到"的错误,以下是分步解决方案: 1. **验证DLL版本一致性** - 检查应用程序要求的DLL版本与系统现有版本是否匹配 - 通过右键点击DLL文件 > 属性 > 详细信息查看文件版本 - 建议重新安装对应的运行时库(如Microsoft Visual C++ Redistributable)[^3] 2. **修复文件完整性** - 使用系统文件检查工具运行命令: ```cmd sfc /scannow ``` - 对于游戏/专业软件,使用其自带的"验证文件完整性"功能 3. **检查依赖关系** - 使用Dependency Walker(depends.exe)分析: ```bash depends.exe your_program.exe ``` - 查看缺失的依赖项和未找到的导出函数[^2] 4. **配置环境路径** - 将正确的DLL存放路径添加到系统环境变量: ```powershell [Environment]::SetEnvironmentVariable("PATH", "$env:PATH;C:\CorrectDLLPath", "Machine") ``` 5. **处理特殊加载情况** - 对于需要捆绑加载的DLL,参考C#嵌入资源加载方案: ```csharp [DllImport("kernel32.dll", SetLastError = true)] static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hReservedNull, LoadLibraryFlags dwFlags); // 需实现自定义加载逻辑处理嵌入资源[^3] ``` 6. **架构兼容性检查** - 确认应用程序与DLL的位数匹配(32位/64位) - 通过任务管理器检查进程架构: ```powershell Get-Process your_program | Select-Object Id, ProcessName, Architecture ``` 7. **注册表修复(谨慎操作)** - 对于需要注册的COM组件: ```cmd regsvr32 /u problem.dll regsvr32 /i problem.dll ``` **典型解决方案流程图:** ``` 检测错误 → 确认DLL版本 → 检查依赖项 → 修复路径/文件 → 测试运行 ↑ ↓ ↑ | └─重装运行时库←──[不匹配]─┘ [失败]→联系供应商 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值