liunx 上python编译安装或使用Anaconda同时安装运行多个不同版本的python环境 在CentOS 7上安装Python 3.7 汉化 python 两个方法均无误,已测试安装成功

CSDN 2024-08-24 11:07:03 阅读 91


1编译安装

注意: 系统上已有                                  python2.7 使用以下 卸载, 不卸载也行 编译安装 注意 要 验证时使用 python3 -version

yum -y remove $(rpm -qa |grep python )

前期准备

更新系统软件包列表:更新系统软件包此步骤可不做:若编译安装失败后把包删干净再执行此步骤,

Copy<code>sudo yum update

安装必要的依赖此步骤在编译安装必做:

Copyyum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel  gcc-c++

安装Python 3.7

下载Python 3.7源码包:

Copywget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz /usr/local/

cd /usr/local/

ls

解压源码包并进入目录:

Copy 两个命令tar xzf Python-3.7.12.tgz

cd Python-3.7.12

编译和安装Python 3.7:

Copy 这是三个命令./configure --enable-optimizations --enable-shared --prefix=/usr/local/python3

--enable-optimizations 启用优化

--enable-shared 指定安装共享库,共享库在使用其他需调用python的软件时会用到,比如使用mod_wgsi 连接Apache与python时需要。

--prefix --前缀

# make -j 2指定2核cpu执行编译过程,会提高编译速度

make -j 2 && make install  #编译并安装,时间比较慢,预计30分钟

Processing /tmp/tmpc18vljnr/pip-20.1.1-py2.py3-none-any.whl

Installing collected packages: setuptools, pip

  WARNING: The script easy_install-3.7 is installed in '/usr/local/python3/bin' which is not on PATH.

  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

  WARNING: The scripts pip3 and pip3.7 are installed in '/usr/local/python3/bin' which is not on PATH.

  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

Successfully installed pip-20.1.1 setuptools-47.1.0

[root@root Python-3.7.12]# 

 

根据提示 :

警告:脚本easy_install-3.7安装在PATH上不存在的/usr/local/python3/bin中。

考虑将此目录添加到PATH中,或者,如果您希望避免此警告,请使用--no-warn-script-location。

警告:脚本 pip3和pip3.7安装在PATH上不存在的/usr/local/python3/bin中。

考虑将此目录添加到PATH中,或者,如果您希望避免此警告,请使用--no-warn-script-location。

配置环境变量

根据提示 ,配置环境变量,把/usr/local/python3/bin:/usr/local/python3/bin 添加进/etc/profile里面。

[root@slave2 opt]# vim /etc/profile

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/git/bin:/usr/local/python3/bin:/usr/local/python3/bin

export JAVA_HOME="/usr/local/src/java/jdk1.8.0_141"

export PATH="$PATH:$JAVA_HOME/bin"

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

 

#/usr/local/python3/bin:/usr/local/python3/bin 是我们手动添加的 配置环境变量

[root@root Python-3.7.12]# source /etc/profile

配置共享库文件

cd /usr/local/python3/bin/

./python3

 ./python3: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory   有此报错

为所有用户设置共享库目录

用 vim 编辑器打开配置文件 <code>/etc/profile.d/python3.sh

 vim /etc/profile.d/python3.sh

在文件末尾写上如下内容:

 # python3.6 共享库目录

 export PATH=$PATH:/usr/local/python3/bin

编辑文件 /etc/ld.so.conf.d/python3.conf,并且添加如下内容:

 # vim /etc/ld.so.conf.d/python3.conf

 /usr/local/python3/lib

保存退出文件后, 执行如下命令 加载配置信息使其生效

[root@root bin]# python3

ldconfig 后,系统会重新扫描 /etc/ld.so.conf 和 /etc/ld.so.conf.d/ 目录下的所有文件,并更新动态链接器的缓存。这样,新添加的库路径就会被系统识别,您安装的Python模块或库就可以被正确加载了

执行如下命令,使环境变量生效

 source /etc/profile.d/python3.sh

测试python3

[root@root bin]# python3

Python 3.7.12 (default, Aug 22 2024, 12:22:56) 

[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

>>>  print('qf') #注意 前面不能有空格 有空格报错

  File "<stdin>", line 1

    print('qf')

    ^

IndentationError: unexpected indent

>>> print('qf')

qf

>>> 

输入 exit() 即可退出 python3

测试 pip3

一般情况下你不需要执行下面的pip安装命令,安装python时会顺手安装。若 pip3 -V 不显示版本,那么需要执行下面的pip安装命令

[root@root bin]# pip3 -V

pip 20.1.1 from /usr/local/python3/lib/python3.7/site-packages/pip (python 3.7)

[root@root bin]# 

假如上面显示的含有 python3.7就没问题了,说明 pip3 安装的模块会安装到上面显示的目录

一般情况下你不需要执行下面的安装命令。

 pip3 install gnureadline

配置 pip3 使用国内源

创建配置文件

 # Linux下使用

 mkdir ~/.pip

 vi ~/.pip/pip.conf

 ​

 # Windows 下使用 pip.ini

 (1):在windows文件管理器中,输入 %APPDATA%

 (2):会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件

写入如下内容:

[global]

timeout = 6000

index-url=https://mirrors.aliyun.com/pypi/simple

豆瓣源: https://pypi.douban.com/simple/

阿里源: https://mirrors.aliyun.com/pypi/simple

清华: https://pypi.tuna.tsinghua.edu.cn/simple

阿里云:   http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

华中理工大学: http://pypi.hustunique.com/

山东理工大学: http://pypi.sdutlinux.org/

[root@root bin]# ldconfig

配置使用国内源安装第三方模块

示例: 比如安装一个执行远程主机命令的模块

 [root@python ~]# pip3 install gnureadline

 

切换为阿里云之后,下载就会自动用阿里的pip源地址进行读取下载

卸载redis 软件: 

[root@python-server bin]# pip3 uninstall redis

列出已安装:

[root@python-server bin]# pip3 list

查看已安装软件版本

[root@python-server bin]# pip3 freeze

导入到requirements.txt

[root@python-server bin]# pip3 freeze > requirements.txt

You are using pip version 9.0.3, however version 20.2.2 is available.

You should consider upgrading via the 'pip install --upgrade pip' command.

[root@python-server bin]# cat requirements.txt 

gnureadline==8.0.0

redis==3.5.3

安装开发人员提供的软件(也就是程序运行所需要的基础环境)

[root@python-server bin]# pip3 install -r requirements.txt

小技巧 列出可以使用pip安装的,所有 redis的版本

[root@python-server bin]# pip3 install redis==kkk

升级pip  不建议 ,软件不是越新越好

# pip3 install --upgrade pip

[root@mysql-server1 ~]# pip3 -V

重新测试:编译安装python3.7 和pip 均安装成功

[root@root bin]# python3

Python 3.7.12 (default, Aug 22 2024, 12:22:56) 

[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> 

 

[root@root bin]# pip3 -V

pip 20.1.1 from /usr/local/python3/lib/python3.7/site-packages/pip (python 3.7)

[root@root bin]# 

 

2.担心不好卸载 使用Anaconda同时安装运行多个不同版本的python环境

Anaconda是一个更大的数据科学平台,包含了Conda包管理器以及许多常用的数据科学工具和库。Anaconda和Miniconda的区别在于Anaconda预先安装了一系列常用的数据科学工具和库,而Miniconda只包含Conda和其基本依赖

[root@root ~]#

1.使用以下命令下载Anaconda安装脚本(请注意这里的下载链接可能会有更新,建议去Anaconda官网查看最新版本链接)

[root@slave2 ~]# cd /opt

 

wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh是544m 下载很慢请耐心等待

2. 给下载的脚本添加执行权限:

[root@slave2 opt]# ls

1.txt                              jack.txt           test.sh

Anaconda3-2021.05-Linux-x86_64.sh  my_git_project     tom.sh

containerd                         mysql-gid-bak.sql  tom.txt

 

  chmod +x Anaconda3-2021.05-Linux-x86_64.sh

3.运行安装脚本   

[root@slave2 opt]# ./Anaconda3-2021.05-Linux-x86_64.sh 

Welcome to Anaconda3 2021.05

In order to continue the installation process, please review the license

agreement.

Please, press ENTER to continue

>>> 

#   按enter键,继续

4.安装完成后,需要激活Anaconda。根据提示选择是否将conda初始化加入到.bashrc文件,一般会选择yes。

>> 

Please answer 'yes' or 'no':'

>>> 

Please answer 'yes' or 'no':'

>>> 

Please answer 'yes' or 'no':'

>>> 

Please answer 'yes' or 'no':'

>>> 

Please answer 'yes' or 'no':'

>>> 

Please answer 'yes' or 'no':'

>>> yes

 

Anaconda3 will now be installed into this location:

/root/anaconda3

  - Press ENTER to confirm the location

  - Press CTRL-C to abort the installation

  - Or specify a different location below

[/root/anaconda3] >>> 

以上翻译如下:

按Enter确认位置:按下<code>Enter键确认安装Anaconda3到/root/anaconda3

等待安装完成:安装程序会开始复制文件和安装Anaconda3到指定位置。请耐心等待安装完成,过程可能需要一些时间取决于系统性能和文件大小

等待一会出现如下:  输入 yes

Preparing transaction: done

Executing transaction: done

installation finished.

Do you wish the installer to initialize Anaconda3

by running conda init? [yes|no]

[no] >>> yes  

 

Do you wish the installer to initialize Anaconda3 的意思是 您希望安装程序初始化 Anaconda3 吗?

安装完成后,你需要配置Anaconda3的环境变量,就是步骤5

以下是安装完成界面。

Thank you for installing Anaconda3!

===========================================================================

Working with Python and Jupyter notebooks is a breeze with PyCharm Pro,

designed to be used with Anaconda. Download now and have the best data

tools at your fingertips.

PyCharm Pro for Anaconda is available at: https://www.anaconda.com/pycharm

[root@slave2 opt]# 

 

5.安装完成后,重新配置环境变量

~/.bashrc/etc/profile是两个不同的文件,在Linux系统中具有不同的作用和范围,

   vim ~/.bashrc  对当前用户的Shell生效

1.确认Anaconda的安装路径并配置环境变量

 

通常默安装路径是  :

/root/anaconda3

也可能是其他路径,如/home/username/anaconda3等。

可以用whereis  anaconda3  查看一下

[root@slave2 opt]# vim /etc/profile                                            # 对所有用户的Shell生效

在文件末尾添加以下行,确保替换实际的Anaconda安装路径:

export PATH="/root/anaconda3/bin:$PATH"

保存并关闭文件。

使新的环境变量设置生效:

[root@slave2 ~]#source /etc/profile   

  #注你在输入 或者粘贴代码 的时候/ # 和代码 不能有空格,不然会报错,如下

[root@slave2 ~]# source /etc/profile 

-bash: /etc/profile : 没有那个文件或目录

 

验证Anaconda是否配置正确

检查<code>conda命令是否可用:

[root@slave2 ~]# conda --version

conda 4.10.1

创建和管理Python环境

conda命令可用后,你可以继续创建和管理Python环境:

1.创建一个新的Python测试环境:

[root@slave2 ~]#conda create --name myenv

Collecting package metadata (current_repodata.json): done

Solving environment: done

==> WARNING: A newer version of conda exists. <==

  current version: 4.10.1

  latest version: 24.7.1

Please update conda by running

    $ conda update -n base -c defaults conda

## Package Plan ##

  environment location: /root/anaconda3/envs/myenv

Proceed ([y]/n)? 

Preparing transaction: done

Verifying transaction: done

Executing transaction: done

#

# To activate this environment, use

#

#     $ conda activate myenv

#

# To deactivate an active environment, use

#

#     $ conda deactivate

[root@slave2 ~]# 

激活环境:  

Copyconda activate myenv

[root@slave2 ~]# conda activate myenv

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.

To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:

  - bash

  - fish

  - tcsh

  - xonsh

  - zsh

  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

[root@slave2 ~]# 

安装包,例如numpy

Copyconda install numpy

[root@slave2 ~]# conda install numpy

Collecting package metadata (current_repodata.json): done

Solving environment: done

==> WARNING: A newer version of conda exists. <==

  current version: 4.10.1

  latest version: 24.7.1

Please update conda by running

    $ conda update -n base -c defaults conda

# All requested packages already installed.

[root@slave2 ~]# 

查看环境中已安装的包:

conda list

更新软件包: conda update 包名

Copyconda update numpy -y

更新指定软件包到最新版本。

6.退出当前环境:

Copyconda deactivater

退出当前环境,如果退出环境报错那么 ,如下

[root@slave2 ~]# conda deactivate

CommandNotFoundError: Your shell has not been properly configured to use 'conda deactivate'.

To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:

  - bash

 

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

 

根据提供的错误信息,使用 conda deactivate 命令时出现问题

错误提示中提到:

您的 shell 尚未正确配置以使用 ‘conda deactivate’ 命令 

运行“conda init”后,您可能需要关闭并重新启动您的shell。

根据提示,运行以下命令来初始化shell:

conda init shell名称

conda init bash

运行完上述命令后,可能需要关闭并重新启动 shell,以使更改生效。然后,应该能够成功使用 ‘conda deactivate’ 命令

[root@slave2 ~]# conda init bash

no change     /root/anaconda3/condabin/conda

no change     /root/anaconda3/bin/conda

no change     /root/anaconda3/bin/conda-env

no change     /root/anaconda3/bin/activate

no change     /root/anaconda3/bin/deactivate

no change     /root/anaconda3/etc/profile.d/conda.sh

no change     /root/anaconda3/etc/fish/conf.d/conda.fish

no change     /root/anaconda3/shell/condabin/Conda.psm1

no change     /root/anaconda3/shell/condabin/conda-hook.ps1

no change     /root/anaconda3/lib/python3.8/site-packages/xontrib/conda.xsh

no change     /root/anaconda3/etc/profile.d/conda.csh

no change     /root/.bashrc

No action taken.

[root@slave2 ~]# 

 

注意:如果使用的是不同的 shell(如 fish、tcsh、xonsh、zsh、powershell 等),则应使用相应的 shell 名称 来运行 ‘conda init’ 命令

 退出当前环境,  返回到基础环境。

conda deactivate

7.删除环境:

Copy<code>conda remove --name myenv --all

删除指定的环境及其所有包。

8.更新Conda: 可以不更新 

Copyconda update conda

更新Conda本身到最新版本。

这些是使用Conda的基本操作,帮助你开始管理Python环境和软件包。

2.创建一个生产环境 :实际可用的Python3环境:

这将在Anaconda中创建一个名为 py3的Python3环境。

打开终端。运行以下命令创建一个名为py3的Python3环境:

Copyconda create --name py3 python=3

激活虚拟环境:

运行以下命令激活一个叫做py3 的虚拟环境:

conda activate py3

现在你已经成功激活了py3 虚拟环境,你可以在这个环境中安装和运行Python3程序。

 

验证环境:

可以运行python --version来验证Python版本是否为Python3。

使用conda list查看当前环境中已安装的包。

安装包,例如numpy

Copyconda install numpy 更新软件包: conda update 包名

Copyconda update numpy -y

更新指定软件包到最新版本。

[root@slave2 ~]# python3 --version 

Python 3.8.8

[root@slave2 ~]# 

 

3.如果conda命令找不到 ,conda无法使用

如果在执行上述创建环境 步骤后,conda命令仍然未找到,请考虑以下几种可能性:

Anaconda未正确安装

尝试重新安装Anaconda,并确保安装路径正确。

环境变量未正确设置

确认路径配置正确,并确保已执行source ~/.bashrc使修改生效。

权限问题

确认你在操作过程中有足够的权限,尤其是路径和配置文件的修改。

汉化Python

下载汉化补丁:

Copywget https://raw.githubusercontent.com/Python3WebSpider/Python3WebSpider/master/Python3.7%E6%B1%89%E5%8C%96%E8%A1%A5%E4%B8%81.patch

应用汉化补丁:

Copysudo patch -p0 < Python3.7%E6%B1%89%E5%8C%96%E8%A1%A5%E4%B8%81.patch

检查Python安装

检查Python版本:

Copypython3 --version

安装pip 和常用插件

安装pip:

Copysudo yum install -y python3-pip

安装常用插件(可根据需要添加):

Copysudo pip3 install requests beautifulsoup4 scrapy

验证安装

验证pip是否安装成功:

Copypip3 --version

验证常用插件是否安装成功:

Copypip3 show requests

pip3 show beautifulsoup4

pip3 show scrapy

Python 特点扩展举例

以下是对每个Python特点的扩展举例,帮助你更好地理解Python的优势:

易于学习:

举例: 对于初学者,编写一个"Hello, World!"程序非常简单,只需一行代码:

Copyprint("Hello, World!")

解释: 相较于其他编程语言,Python的语法非常简洁,减少了学习编程的难度。

易于阅读:

举例: Python使用缩进来表示代码块,提高了代码的可读性。

Copydef greet(name):

if name:

print(f"Hello, {name}!")

else:

print("Hello, World!")

解释: 清晰的代码结构使得阅读和理解程序更加容易。

易于维护:

举例: Python的代码维护相当容易,社区有大量的文档和最佳实践指南。

Copy# Example of easy to maintain code

def add(a, b):

return a + b

解释: 简单和清晰的代码结构使得维护和扩展变得更加容易。

一个广泛的标准库:

举例: 使用Python标准库中的datetime模块操作日期和时间。

Copyimport datetime

now = datetime.datetime.now()

print(now)

解释: 标准库提供了丰富的模块,减少了编写代码的工作量。

互动模式:

举例: 在Python终端中直接执行代码并查看结果:

Copy>>> a = 5

>>> b = 10

>>> a + b

15

解释: 互动模式支持即时反馈,适合测试和调试代码。

可移植:

举例: Python代码可以在不同平台上无缝运行,例如在Windows和Linux上运行相同的脚本。

Copyimport os

print(os.name) # 输出当前操作系统的名称

解释: Python的跨平台特性使得开发者可以编写一次代码,在多个平台上运行。

可扩展:

举例: 使用C扩展模块来优化关键性能部分。

Copy// example.c

#include <Python.h>

static PyObject* my_function(PyObject* self, PyObject* args) {

return Py_BuildValue("i", 42);

}

static PyMethodDef myMethods[] = {

{ "my_function", my_function, METH_VARARGS, "Returns 42." },

{ NULL, NULL, 0, NULL }

};

static struct PyModuleDef myModule = {

PyModuleDef_HEAD_INIT, "myModule", NULL, -1, myMethods

};

PyMODINIT_FUNC PyInit_myModule(void) {

return PyModule_Create(&myModule);

}

Copy# 使用C扩展模块的Python代码

import myModule

print(myModule.my_function()) # 输出42

解释: 通过C/C++扩展,Python可以实现高性能计算。

数据库:

举例: 使用Python的sqlite3模块连接和操作SQLite数据库。

Copyimport sqlite3

conn = sqlite3.connect('example.db')

c = conn.cursor()

c.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)''')

c.execute("INSERT INTO users (name) VALUES ('Alice')")

conn.commit()

conn.close()

解释: Python提供了对各种数据库的支持,使得数据库操作变得简单。

GUI编程:

举例: 使用tkinter模块创建一个简单的GUI应用。

Copyimport tkinter as tk

root = tk.Tk()

label = tk.Label(root, text="Hello, GUI!")code>

label.pack()

root.mainloop()

解释: Python支持多种GUI库,可以创建跨平台的图形用户界面应用。

可嵌入:

举例: 在C程序中嵌入Python解释器。

Copy#include <Python.h>

int main(int argc, char *argv[]) {

Py_Initialize();

PyRun_SimpleString("print('Hello from embedded Python!')");

Py_Finalize();

return 0;

}

解释: 可以将Python嵌入到其他语言的应用程序中,为应用程序增加脚本支持。

为什么举例?

这些举例展说明Python在不同领域中的应用及其优势,进一步说明了Python是一个功能强大且灵活的编程语言



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。