好的,我想在 CentOS 的生产 VPS 上运行 django web 应用程序。应用程序代码是使用 Python 2.7 编写的。
我已经按照以下步骤安装了 Python 2.7 并配置了虚拟环境指导。但是因为我打算使用 MySQL 作为数据库并用于其他目的,所以我必须安装包python-devel
。我尝试使用
yum 安装 python-devel
并获得了适用于旧版本 Python 的软件包。我该如何为 Python v. 2.7 安装此软件包?如果我覆盖标准 Python,则系统的几个软件包(例如 yum)将被损坏。请告诉我如何解决这个问题。
更新 有关版本的信息:
- CentOS 6.4
- Django 1.4
- Python 2.7.3
- MySQL 14.14
答案1
恐怕你的问题毫无意义。你从源代码构建了 Python,并将其安装在另一个位置(/usr/local/bin
如果链接的文章正确的话)。一旦你从源代码构建,你就完全背离了包管理的foo
惯例foo-devel
。或者,简而言之,没有python-devel
从源代码构建的安装。
但是您将在构建过程中安装必要的库;它们可能位于 中/usr/local/lib
。为了使用这些库,需要指示您要编译的每个新软件,以优先于标准系统库来查找新的 Python 库。有时,将/usr/local/bin
first 放在路径中,以便运行时python
选择新版本,这就足够了;有时,会有一个环境变量指示构建在某个位置查找(例如export PYTHON_LIBDIR=/usr/local/lib
;有时,会有一个配置标志(例如./configure --python-libs=/usr/local/lib
)。它会因构建而异,您必须对每个构建进行试验。
如果您认为这很痛苦,那么您是对的;软件打包系统在过去 20 年里变得非常流行是有原因的;通过从源代码手工构建一个主要的系统组件,您就回到了 90 年代初 - 祝你好运!
答案2
为什么不使用 IUS 存储库来安装新的 python 版本,您可以安装 2.7 和 3.3,并且它们不会覆盖现有的 python 安装(就像 yum 使用的一样)。
http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/
请注意,其中的包名为 python27,而不是 python-2.7。
答案3
我不愿意翻出旧帖,但人们仍在经历这个过程,所以我会插话。。Rajat 发布的过程在某种意义上是正确的。如果您安装了“dev tools”组并且还 altinstall 了 python2.7.3,那么您就走在了正确的轨道上。
您必须运行yum install python-devel
,它将安装 2.6。这是正常的。继续安装您需要的任何其他 python 库/模块。(我不能说它们都以这种方式工作)现在返回到您解压 python gzip 的位置并重新运行:
# ./configure --prefix=/usr/local
# make && make altinstall
我想说努力获取pip
和easy_install
设置 2.7 以使以后的软件包安装更容易一些。
这也适用于 2.7.5。
答案4
安装开发工具
# yum groupinstall "Development tools"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
下载并安装 Python
# wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
# tar xf Python-2.7.3.tar.bz2
# cd Python-2.7.3
# ./configure --prefix=/usr/local
# make && make altinstall
使用上述步骤我已经在 Cent OS 6.3 上安装了 python 2.7