Python的开发环境安装和配置非常的简单,如果是Linux系统则会默认集成安装了Python环境,Python的可执行文件被放在了/usr/local/bin目录下,库函数被安装在了/usr/local/python目录中,接下来我们将使用源码的方式来编译安装一下Python解释器.

1.首先安装gcc编译器,和Python的相关依赖包.

[root@localhost ~]# yum -y install gcc zlib zlib-devel openssl openssl-devel libffi-devel

Package gcc-4.8.5-36.el7.x86_64 already installed and latest version
Package zlib-1.2.7-18.el7.x86_64 already installed and latest version
Package zlib-devel-1.2.7-18.el7.x86_64 already installed and latest version
Package 1:openssl-1.0.2k-16.el7.x86_64 already installed and latest version
Package 1:openssl-devel-1.0.2k-16.el7.x86_64 already installed and latest version
Package libffi-devel-3.0.13-18.el7.x86_64 already installed and latest version
Nothing to do

2.这里我们需要编译并安装Python解释器.

[root@localhost ~]# yum install -y readline
[root@localhost ~]# wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
[root@localhost ~]# tar xvzf Python-3.7.0.tgz -C /usr/src/python3.7
[root@localhost ~]# cd /usr/src/Python-3.7.0/
[root@localhost ~]# ./configure --prefix=/usr/local/python3.7
[root@localhost ~]# make && make altinstall

3.将Python头文件拷贝到标准目录,避免直接使用Python找不到所需的头文件.

[root@localhost ~]# cd /usr/local/include/python3.7/
[root@localhost ~]# cp -a ./* /usr/local/include/

4.接着我们备份一下旧版本的Python,并创建符号链接链接到新版本的Python上面.

[root@localhost ~]# cd /usr/bin/
[root@localhost bin]# mv python python.old
[root@localhost bin]# ln -s /usr/local/bin/python3.7 /usr/local/bin/python
[root@localhost bin]# rm -rf /usr/bin/python
[root@localhost bin]# cp /usr/local/bin/python3.7 /usr/bin/python

5.由于yum是用Python开发的,这里为了避免冲突要改掉他的配置.

[root@localhost ~]# vim /usr/bin/yum
#!/usr/bin/python2.7       ←此处将python改成python2.7

[root@localhost ~]# vim /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python2.7       ←此处将python改成python2.7

6.最后测试python新版本是否生效了.

[root@localhost ~]# python
Python 3.7.0 (default, Apr 17 2018, 11:03:21) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

编译成pyc文件: 将我们写好的一个.py文件编译成.pyc文件.

[root@localhost ~]# ls -lh
total 4.0K
-rw-r--r--. 1 root root 43 Jan  8 02:22 test.py

[root@localhost ~]# python -m test.py
[root@localhost ~]# ls -lh
total 8.0K
-rw-r--r--. 1 root root  43 Jan  8 02:22 test.py
-rw-r--r--. 1 root root 163 Jan  8 02:25 test.pyo

编译成pyo文件: 将我们写好的一个.py文件编译成.pyo文件.

[root@localhost ~]# ls -lh
total 4.0K
-rw-r--r--. 1 root root 43 Jan  8 02:22 test.py

[root@localhost ~]# python  -O -m test.py
[root@localhost ~]# ls -lh
total 8.0K
-rw-r--r--. 1 root root  43 Jan  8 02:22 test.py
-rw-r--r--. 1 root root 163 Jan  8 02:25 test.pyo

打包Python程序: 通过pip安装打包工具pyinstaller.

[root@localhost ~]# yum install -y python-pip

Package python2-pip-8.1.2-6.el7.noarch already installed and latest version
Nothing to do

[root@localhost ~]# pip install pyinstaller
Collecting pyinstaller
  Downloading https://files.pythonhosted.org/pyinstall

2.准备测试文件,执行以下命令加密生成可执行文件.

[root@localhost ~]# ls -lh
total 4.0K
-rw-r--r--. 1 root root 43 Jan  8 02:22 test.py

[root@localhost ~]# pyinstaller -F ./test.py
44 INFO: PyInstaller: 3.4
44 INFO: Python: 2.7.5
44 INFO: Platform: Linux-3.10.0-862.el7.x86_64-x86_64-with-centos-7.5.1804-Core
44 INFO: wrote /root/test.spec
152 INFO: UPX is not available.
155 INFO: Extending PYTHONPATH with paths
......

3.然后查看,在当前目录会看到生成个3个目录,其中dist目录中的内容,就是生成的可执行文件.

[root@localhost ~]# ls -lh
total 8.0K
drwxr-xr-x. 3 root root  18 Jan  8 02:29 build
drwxr-xr-x. 2 root root  18 Jan  8 02:29 dist
-rw-r--r--. 1 root root  43 Jan  8 02:22 test.py
-rw-r--r--. 1 root root 786 Jan  8 02:29 test.spec

[root@localhost dist]# ls -lh
total 4.7M
-rwxr-xr-x. 1 root root 4.6M Jan  8 02:29 test

[root@localhost dist]# ./test
hello world

相关文章:

  • 2021-07-26
  • 2021-11-17
  • 2021-09-26
  • 2021-08-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-25
  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
  • 2021-06-26
  • 2022-01-23
  • 2022-12-23
相关资源
相似解决方案