切换python版本
故事: 我的应用程序之一适用于 python 2.4,另一个适用于 2.6。 我尝试做一个 python2.4 到 python 的符号链接,事情开始在 ubuntu jaunty 上崩溃。 现在我正在下载 2.4 的每个依赖项并使用 python2.4 setup.py install 安装它。 依赖性似乎是无穷无尽的。
问题1:我如何告诉任何使用版本某某pf python(如day django)的框架使用2.6并说mjango使用2.4? 就像我们说的使用数据库数据库名称语法一样。
问题2:是否有更优雅的方式在版本之间切换,因为我的符号链接黑客是一场虚拟灾难?
问题 3:我可以下载 say Hardy 的 deb 并让 jaunty 相信这是给她的吗?
Story:
One of the app that i have works on python 2.4 and other on 2.6. I tried to do a sym link of python2.4 to python and things started to break loose on ubuntu jaunty.
Now i am downloading every dependency of 2.4 and installing it using python2.4 setup.py install. The dependencies seem to be endless.
Question1: How will i tell any framework that go and use version so and so pf python like day django to use 2.6 and say mjango to use 2.4? Something like we say use database databasename kinda syntax.
Question2: Is there more elegant way to switch between version as my hack of symlinking was a virtual disaster?
Question3: Can I download a deb for say hardy and make jaunty believe its for her?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
使用Virtualenv。
这里有更多信息: 使用 virtualenv。
使用 virtualenv,您可以为每个项目或应用程序使用您想要的任何版本的 Python 创建一个新的虚拟 Python 环境。 然后,您可以在需要时激活适当的环境。
扩展我的答案:
您可以在计算机上安装多个版本的 Python(我的计算机上有 2.4、2.5、2.6 和 3.1 - 我从源代码安装每个版本)。 我使用 Mac,并将我的系统 Python 保留为 OS X 设置的默认值。
我使用 easy_install 来安装软件包。 在 ubuntu 上,您可以像这样获得 easy_install:
要安装 virtualenv,然后执行以下操作:
我倾向于为我正在处理的每个项目创建一个新的 virtualenv,并且不授予其访问全局站点包的权限。 这将所有包紧密地结合在一起,并允许我拥有我需要的所有内容的特定版本。
然后每当我做任何与这个项目相关的事情时,我都会激活它:
如果我现在运行 python,它会使用这个新的 python。 如果我使用 easy_install ,它会将东西安装到我的新虚拟环境中。
所以,virtualenv应该能够解决你所有的问题。
Use Virtualenv.
There is more information here: Working with virtualenv.
Using virtualenv you can create a new virtual python environment with whatever version of Python you want for each project or application. You can then activate the appropriate environment when you need it.
To expand on my answer:
You can install multiple versions of Python on your computer (I have 2.4, 2.5, 2.6 and 3.1 on my machine - I install each from source). I use a Mac, and keep my system Python as whatever OS X sets as the default.
I use easy_install to install packages. On ubuntu you can get easy_install like this:
To install virtualenv then do:
I tend to create a new virtualenv for each project I'm working on and don't give it access to the global site-packages. This keeps all the packages tight together and allows me to have the specific versions of everything I need.
And then whenever I am doing anything related to this project I activate it:
If I run python now it uses this new python. If I use easy_install it installs things into my new virtual environment.
So, virtualenv should be able to solve all of your problems.
Pythonbrew 是一个神奇的工具。 也可以称为 Python 版本管理器,类似于 RVM-Ruby 版本管理器,但 Pythonbrew 受到 Perlbrew 的启发。
Pythonbrew 是一个在用户 $HOME 中自动构建和安装 Python 的程序。
在安装 Pythonbrew 之前,请在计算机中安装“curl”,要安装curl,请在终端中使用以下命令,在出现提示时提供用户密码。
安装curl后,立即安装Pythonbrew,将以下命令复制并粘贴到终端中,并在出现提示时键入用户的密码。
推荐的安装方法 - Easy Install
要完成安装,请键入以下命令
替代安装方法:
使用curl 命令从 github 下载最新版本的 pythonbrew。
下载后,将“pythonbrew-install”更改为“executable”
然后,在终端中运行pythonbrew-install
现在Pythonbrew已经安装在
“Home Directory”
中,即/home/ user/.pythonbrew
接下来,将以下行复制并粘贴到 ~/.bashrc 的末尾
*注意:将
“user”
更改为您在系统中的用户名就是这样! 关闭终端。
安装不同版本Python的步骤:
打开一个新终端,键入以下命令或复制并粘贴它。
这将安装 Python 2.6.6,要安装 Python 2.7 或 Python 3.2,请更改上一个命令中的版本号。
或
更新:如果安装时出现错误,请使用以下命令进行安装。
或
如何管理系统中安装的不同版本的Python
例如,如果您的系统中安装了Python
2.6.6
、Python 2.7
和Python 3.2
系统,版本之间的切换可以按如下方式完成:默认情况下,
Python 2.6.6
将处于活动状态,要切换到 Python 2.7,请使用以下命令默认 Python 更改为 Python 2.7。
现在,要切换到 Python 3.2,请更改上一个命令中的版本号。
使用以下命令检查或列出已安装的 Python 版本
使用以下命令检查或列出要安装的可用 Python 版本
要卸载任何已安装的 Python 版本(例如卸载 Python 2.7),请使用以下命令。
使用以下命令更新
Pythonbrew
使用以下命令禁用
Pythonbrew
并激活默认版本享受在单个Linux / ubuntu中安装多个版本的Python的体验机器!
Pythonbrew is a magical tool. Which can also be called as Python version manager similar to that of RVM-Ruby version manager but Pythonbrew is inspired by Perlbrew.
Pythonbrew is a program to automate the building and installation of Python in the users $HOME.
Before Installing the Pythonbrew, Install “curl” in the machine, to install curl use the below command in the terminal, give the the password for the user when prompted.
After Installing the curl, Now Install Pythonbrew, copy and paste the following commands in the terminal and type the password for the user when prompted.
Recomended method of installation - Easy Install
To complete the installation, type the following command
Alternate method of installation:
Use curl command to download the latest version of pythonbrew from github.
After downloading, change “pythonbrew-install” to “executable”
Then, run the pythonbrew-install in the terminal
Now the Pythonbrew has been installed in the
“Home Directory”
i.e.,/home/user/.pythonbrew
Next, copy and paste the following line to the end of ~/.bashrc
*NOTE: change
“user”
to your user name in the systemThats it! Close the terminal.
Steps to Install different versions of Python:
Open a new terminal, type the following command or copy and paste it.
This will install Python 2.6.6 and to install Python 2.7 or Python 3.2, change the version number in the previous command.
or
Update: If you get error while Installing then Install using the below command.
or
How to manage different versions of Python installed in system
For instance, if Python
2.6.6
,Python 2.7
andPython 3.2
is installed in your system, switching between the versions can be done as follows:By default,
Python 2.6.6
will be active and in order to switch to Python 2.7 use the below commandThe default Python is changed to Python 2.7.
Now, to switch to Python 3.2 change the version number in the previous command.
Use the below command to check or list the installed Python versions
Use the below command to check or list the available Python Versions to install
To uninstall any of the installed Python version (for example to uninstall Python 2.7), use the below command.
Use the below command to update the
Pythonbrew
Use the below command to disable the
Pythonbrew
and to activate the default versionEnjoy the experience of installing multiple versions of Python in single Linux / ubuntu machine!
我发现 http://github.com/utahta/pythonbrew 比其他任何东西都更容易安装和使用解决方案。
只需安装它,您就会有以下选项:
注意:如果您使用预装了 Python 的基于 Linux 的操作系统,则(系统范围内)切换到另一个版本可能会导致出现问题,因此当心。
I find http://github.com/utahta/pythonbrew much easier to install and use than any other solution.
Just install it and you'll have these options:
Note: if you're using a Linux-based operating system with preinstalled Python, switching (system wide) to another version can make things go wrong, so be careful.
比 Virtualenv 更草根的方法是并行安装两个 Python 版本。
如果已有安装,并且您希望在同一根路径(例如 /usr/local)中进行第二次安装,请在安装时使用此目标:
当您的第二次安装是 Python 2.6 时,这将为您留下 /usr/ local/bin/python2.6 与旧的 /usr/local/bin/python 一起。
在这两个版本之间切换的一个简单方法是在调用解释器的 shell 上使用 shell 别名(别名 python=/usr/local/bin/python2.6)。 但这不适用于子 shell 和 she-bang 调用。
A more grassroot approach than Virtualenv is the side-by-side installation of two Python versions.
If there is an existing installation, and you want a second installation into the same root path (e.g. /usr/local), use this target when making install:
When your second installation is Python 2.6, this will leave you with a /usr/local/bin/python2.6 alongside the old /usr/local/bin/python.
A simple way to switch between these two versions is using a shell alias (alias python=/usr/local/bin/python2.6) on the shell where you invoke the interpreter. But this won't work across sub-shells and she-bang invocations.
pyenv 是另一个 Python 管理器。 该链接上的 README.md 有一组很好的说明,但它们基本上是:
然后设置您的 $PATH。
安装所需版本的 Python:
安装后,您需要运行以下命令:
然后切换到您要运行的 Python 版本,对于 shell:
pyenv is yet another Python manager. The README.md at that link has a good set of instructions, but they basically are:
Then set up your $PATH.
Install the desired versions of Python:
After installing you need to run this:
Then switch to the version of Python you want to run, for the shell:
“问题 1:我如何告诉任何框架使用某某版本的 python(例如 day django)使用 2.6,并告诉 mjango 使用 2.4?”
您只需使用它们所需的特定 python 版本运行它们即可。 使用 /usr/bin/python2.4 运行 mjango,使用 /usr/bin/python2.6 运行 django。 就这么简单。
“问题 2:是否有更优雅的方式在版本之间切换,因为我对符号链接的攻击是一场虚拟灾难?”
是的,见上文。 有两个单独的 Python 安装,并使用不同的版本显式运行。
“问题 3:我可以为 say Hardy 下载一个 deb,并让 jaunty 相信这是给她的吗?”
这通常有效。 如果没有,那是因为它具有 Hardy 中存在的依赖项,而 Jaunty 中不存在,那么您就不能这样做。
这是您没有问但应该问的问题 4。 ;)
“有没有更简单的方法来下载所有这些 Python 模块?”
就在这里。 安装setuptools,并使用easy_install。 它不会帮助您处理那些具有 C 代码且需要编译的 Python 模块的库依赖性。 但它将会帮助所有其他人。 easy_install 将一次性下载并安装相关模块的所有 Python 依赖项。 这使得安装 Python 模块变得更快。
"Question1: How will i tell any framework that go and use version so and so pf python like day django to use 2.6 and say mjango to use 2.4?"
You simply run them with the specific python version they need. Run mjango with /usr/bin/python2.4 and django with /usr/bin/python2.6. As easy as that.
"Question2: Is there more elegant way to switch between version as my hack of symlinking was a virtual disaster?"
Yes, see above. Have two separate installs of Python, and run explicitly with the different versions.
"Question3: Can I download a deb for say hardy and make jaunty believe its for her?"
That generally works. If it doesn't, it's because it has dependencies that exist in Hardy, and does not exist in Jaunty, and then you can't.
And here is a Question 4 you didn't ask, but should have. ;)
"Is there an easier way to download all those Python modules?"
Yes, there is. Install setuptools, and use easy_install. It will not help you with library dependecies for those Python modules that have C code and need to be compiled. But it will help with all others. easy_install will download and install all the Python dependencies of the module in question in one go. That makes it a lot quicker to install Python modules.
移动到项目目录:
创建环境:
virtualenv -p python2.7 --no-site-packages ~/env/twoseven
然后激活您的源:
源 ~/env/twoseven/bin/activate
Move to the project directory :
Create an environment :
virtualenv -p python2.7 --no-site-packages ~/env/twoseven
Then activate your source :
source ~/env/twoseven/bin/activate