我目前正在做一些嵌入式系统编程。这是几年前由其他人建立的。所以现在我正在寻求升级到Python 2.7.2以使事情更简单,因为我已经遇到过两种情况,我编码的内容不受支持。
目前正在运行的是什么:
: uname -a
Linux host1 2.6.18-6-486 #1 Sun Feb 10 22:06:33 UTC 2008 i586 GNU/Linux
: python -v
Python 2.4.4
: pyversions -i
python2.4
所以现在只安装了2.4。
我解压缩了python2.7.2,当我转到该目录并运行python27 setup.py install --home=/home/jhemilian
时,似乎python2.4似乎不知道with...as
语句语法:
host1:/home/jhemilian/src/Python-2.7.2: python setup.py install --home=/home/jhe
milian
File "setup.py", line 361
with open(tmpfile) as fp:
^
SyntaxError: invalid syntax
在我搞清楚之前,我首先提出一个问题:python本身是用来安装Python的吗?如果我没有安装第一个版本的Python怎么办?我知道它与大多数Linux一起出货但假设 - 这样的看似捕获22如何工作?
我要做的是在一个良性的位置安装python2.7,保持python
命令仍然使用Python 2.4,以防万一我正在运行的“遗留”软件依赖于它,并且当我想运行我的一个新脚本时,运行python2.7 myscript.py
等等。如果有更清洁或更实用(甚至更安全!)的方式,请随意发表评论。
我认为用兼容的try块替换所有with语句是没有多大意义的。我看过自述文件和在线文档,但我似乎找不到安装Python的方法,而没有使用Python。请注意,我没有互联网连接,但如果需要或必要,我可以。如果有人能指出我正确的方向,那就太好了。谢谢!
答案 0 :(得分:1)
答案 1 :(得分:0)
我认为你想要的是virtualenv。
我自己没有使用它,但我知道这就是它的意思。
来自the website:
编辑:经过审核,我认为你想要阿尔贝托的答案,所以我投票给他了。见面。virtualenv 是一个创建孤立的Python环境的工具。
要解决的基本问题是依赖项和版本之一,以及间接权限。想象一下,您有一个需要LibFoo版本1的应用程序,但另一个应用程序需要版本2.您如何使用这两个应用程序?如果您将所有内容安装到/usr/lib/python2.7/site-packages(或任何平台的标准位置),则很容易在无意中升级应用程序的情况下结束不应该升级。
答案 2 :(得分:0)
安装程序在多个地方描述。
答案 3 :(得分:0)
在README中可以......
你不需要使用python来安装,事实上,你不应该......只是:
./configure
make
make install
如果您想安装在特定目录中,请按照README的说法进行操作:
安装
安装Python二进制文件,库模块,共享库模块 (见下文),包含文件,配置文件和手册页, 只需输入
make install
这将在子目录中安装所有与平台无关的文件 使用--prefix选项给出的目录来配置或
prefix' Make variable (default /usr/local). All binary and other platform-specific files will be installed in subdirectories if the directory given by --exec-prefix or the
exec_prefix'变量 (默认为--prefix目录)。如果设置了DESTDIR,它将被视为的根目录 安装,文件将安装到$(DESTDIR)$(前缀)中, $(DESTDIR)$(exec_prefix)等。
创建的所有子目录都将包含Python的版本号 名称,例如库模块安装在 “/ usr / local / lib / python /”默认情况下,在哪里 。发行号码(例如“2.1”)。 Python二进制文件是 安装为“python”和名为“python”的硬链接 创建。唯一没有安装版本号的文件 name是手册页,安装为“/usr/local/man/man1/python.1” 默认情况下。
如果要安装多个版本的Python,请参阅本节 下面标题为“安装多个版本”。
您可能必须手动安装的是Python模式 Emacs在Misc / python-mode.el中找到。 (但话说再说,最近 Emacs的版本可能已经拥有它。)按照说明操作 与Emacs一起安装了特定于站点的文件。