无极低码 :https://wheart.cn
2. 在类Unix环境下使用Python
2.1. 获得并安装Python的最新版本
2.1.1. 在Linux中
Python预装在大多数Linux发行版上,并作为一个包提供给所有其他用户。 但是,您可能想要使用的某些功能在发行版提供的软件包中不可用。这时您可以从源代码轻松编译最新版本的Python。
如果Python没有预先安装并且不在发行版提供的库中,您可以轻松地为自己使用的发行版创建包。 参阅以下链接:
参见
https://www.debian.org/doc/manuals/maint-guide/first.en.html
对于Debian用户
Portal:Packaging - openSUSE Wiki
对于OpenSuse用户
Packaging Tutorial: GNU Hello :: Fedora Docs
对于Fedora用户
Making Packages
对于Slackware用户
2.1.2. 在FreeBSD和OpenBSD上
- FreeBSD用户,使用以下命令添加包: pkg install python3
- OpenBSD用户,使用以下命令添加包: pkg_add -r python pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insert your architecture here>/python-<version>.tgz 例如:i386用户获取Python 2.5.1的可用版本: pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz
2.2. 构建Python
如果你想自己编译 CPython,首先要做的是获取 源代码。 你可以下载最新发布版的 source 或是直接抓取最新的 clone。 (如果你想要贡献补丁,那么你就必须先 clone。)
构建过程由常用命令组成:
./configure
make
make install
特定 Unix 平台的 配置选项 和注意事项通常会详细地记录在 Python 源代码树的根目录下的 README.rst 文件中。
警告
make install
可以覆盖或伪装 python3
二进制文件。因此,建议使用 make altinstall
而不是 make install
,因为后者只安装了 exec_prefix/bin/pythonversion
。
2.3. 与Python相关的路径和文件
这些取决于本机安装惯例的不同;prefix 和 exec_prefix 依赖于具体安装并且应当被解读为针对 GNU 软件;它们可能具有相同的含义。
例如,在大多数Linux系统上,两者的默认值是 /usr
。
文件/目录 | 含意 |
---|
exec_prefix/bin/python3 | 解释器的推荐位置 |
prefix/lib/pythonversion, exec_prefix/lib/pythonversion | 包含标准模块的目录的推荐位置 |
prefix/include/pythonversion, exec_prefix/include/pythonversion | 包含开发Python扩展和嵌入解释器所需的include文件的目录的推荐位置 |
2.4. 杂项
要在Unix上使用Python脚本,需要添加可执行权限,例如:
$ chmod +x script
并在脚本的顶部放置一个合适的Shebang线。一个很好的选择通常是:
#!/usr/bin/env python3
将在整个 PATH
中搜索Python解释器。但是,某些Unix系统可能没有 env 命令,因此可能需要将 /usr/bin/python3
硬编码为解释器路径。
要在Python脚本中使用shell命令,请查看 subprocess 模块。
2.5. 自定义 OpenSSL
- 要使用发行商的 OpenSSL 配置和系统信任存储库,请找到包含 openssl.cnf 文件或符号链接的目录,它位于 /etc 中。 在大多数发行版上该文件是在 /etc/ssl 或者 /etc/pki/tls 中。 该目录还应当包含一个 cert.pem 文件和/或一个 certs 目录。 $ find /etc/ -name openssl.cnf -printf "%h\n" /etc/ssl
- 下载、编译并安装 OpenSSL。 请确保你使用 install_sw 而不是 install。 install_sw 的目标不会覆盖 openssl.cnf。 $ curl -O https://www.openssl.org/source/openssl-VERSION.tar.gz $ tar xzf openssl-VERSION $ pushd openssl-VERSION $ ./config \ --prefix=/usr/local/custom-openssl \ --libdir=lib \ --openssldir=/etc/ssl $ make -j1 depend $ make -j8 $ make install_sw $ popd
- 使用自定义的 OpenSSL 编译 Python (参考配置 --with-openssl 和 --with-openssl-rpath 选项) $ pushd python-3.x.x $ ./configure -C \ --with-openssl=/usr/local/custom-openssl \ --with-openssl-rpath=auto \ --prefix=/usr/local/python-3.x.x $ make -j8 $ make altinstall
备注
OpenSSL 的补丁发布版具有向下兼容的 ABI。 你不需要重新编译 Python 来更新 OpenSSL。 使用一个新的版本来替代自定义 OpenSSL 安装版就可以了。
无极低码 :https://wheart.cn
-
2024-02-28 16:23:13.0
编程,程序,python,教程,程序员,入门教程
-
2024-02-28 16:16:47.0
编程,程序,python,教程,程序员,入门教程
-
2024-02-25 19:59:59.0
编程,程序,python,教程,程序员,入门教程
-
2024-02-25 19:53:17.0
编程,程序,python,教程,程序员,入门教程
-
2024-02-25 19:48:10.0
编程,程序,python,教程,程序员,入门教程
-
2024-02-25 19:34:32.0
编程,程序,python,教程,程序员,入门教程
-
2024-02-25 19:29:58.0
编程,程序,python,教程,程序员,入门教程
-
2024-02-25 19:24:35.0
编程,程序,python,教程,程序员,入门教程
-
2024-02-25 19:20:40.0
编程,程序,python,教程,程序员,入门教程
-
2024-02-24 19:37:08.0
编程,程序,python,教程,程序员,入门教程,mac
-
2024-02-24 19:33:08.0
编程,程序,python,教程,程序员,入门教程
-
2024-02-24 19:28:40.0
编程,程序,python,教程,程序员,入门教程
-
2024-02-24 19:12:43.0
unix,python,安装教程
-
2024-02-24 19:05:38.0
编程,程序,python,教程,程序员,入门教程
-
2023-07-16 15:25:21.0
Python,入门语法教程Python,入门语法教程21,Python,函数实战
-
2023-07-16 15:25:21.0
Python,入门语法教程Python,入门语法教程22,Python,编程范式科普
-
2023-07-16 15:25:21.0
Python,入门语法教程Python,入门语法教程23,Python,的,lambda,表达式
-
2023-07-16 15:25:21.0
Python,入门语法教程Python,入门语法教程24,Python,的闭包简介
-
2023-07-16 15:25:20.0
Python,入门语法教程Python,入门语法教程17,Python,中的推导式
-
2023-07-16 15:25:20.0
Python,入门语法教程Python,入门语法教程18,Python,编程案例实践
-
2023-07-16 15:25:20.0
Python,入门语法教程Python,入门语法教程19,Python,中的函数
-
2023-07-16 15:25:20.0
Python,入门语法教程Python,入门语法教程20,Python,中的函数参数
-
2023-07-16 15:25:19.0
Python,入门语法教程Python,入门语法教程13,Python,数据类型详细篇:字典
-
2023-07-16 15:25:19.0
Python,入门语法教程Python,入门语法教程14,Python,数据类型详细篇:集合
-
2023-07-16 15:25:19.0
Python,入门语法教程Python,入门语法教程15,Python,的条件控制语句
-
2023-07-16 15:25:19.0
Python,入门语法教程Python,入门语法教程16,Python,的循环控制语句
-
2023-07-16 15:25:18.0
Python,入门语法教程Python,入门语法教程08,Python,数据类型详细篇:数值
-
2023-07-16 15:25:18.0
Python,入门语法教程Python,入门语法教程09,Python,数据类型详细篇:布尔值
-
2023-07-16 15:25:18.0
Python,入门语法教程Python,入门语法教程10,Python,数据类型详细篇:列表
-
2023-07-16 15:25:18.0
Python,入门语法教程Python,入门语法教程11,Python,数据类型详细篇:字符串
-
2023-07-16 15:25:18.0
Python,入门语法教程Python,入门语法教程12,Python,数据类型详细篇:元组
-
2023-07-16 15:25:17.0
Python,入门语法教程Python,入门语法教程05,Python,代码如何运行
-
2023-07-16 15:25:17.0
Python,入门语法教程Python,入门语法教程06,Python,的基本语法规范
-
2023-07-16 15:25:17.0
Python,入门语法教程Python,入门语法教程07,Python,中常用的数据类型
-
2023-07-16 15:25:16.0
Python,入门语法教程Python,入门语法教程01,Python,语言简介及其应用领域
-
2023-07-16 15:25:16.0
Python,入门语法教程Python,入门语法教程02,MacOS,下搭建,Python,开发环境
-
2023-07-16 15:25:16.0
Python,入门语法教程Python,入门语法教程03,Ubuntu,下搭建,Python,开发环境
-
2023-07-16 15:25:16.0
Python,入门语法教程Python,入门语法教程04,Windows下搭建,Python,开发环境