编码python - 需要设置默认解释器而不需要搞砸系统

时间:2015-02-15 00:01:17

标签: python default interpreter

我是一名新手Python程序员。我正在编写一个简单的应用程序,它只是运行命令并以有条理的方式打印输出。具体来说,来自FGLRX的命令,这是用于Linux的ATI / AMD GPU卡的专有驱动程序。

其中一项功能是获取设备温度。到目前为止,我得到了它的工作,但我喜欢自动刷新输出。我被建议使用curses库。

设置它,我意识到我可能没有运行最好的python系统配置。

以下是发生的事情: 我在Debian Wheezy上运行。我正在使用PyCharm Python IDE和项目解释器Python 3.3

所以,首先,当我尝试在IDE中进行调试时,它会失败。我用google搜索,那是因为curses无法在IDE中找到终端。 - 没关系。

所以我试图通过运行&#34来自然地调试#34; (根据说)来自Konsole的程序。

我甚至不确定我的系统正在运行什么Python版本。但它似乎不是3,因为它在使用" elif"时无法正常运行我的程序。

但我最大的问题是python3运行的默认颠覆。它不是我想要的那个。

为什么我这样说: 在我的IDE(3.2.3)中运行python控制台,我检查已安装的模块以及" curses"和" _curses"显示为已安装。

但是,在我的Konsole中,如果我运行" python3 main.py",我明白了:

audric@pc1:/mnt/megaomg/software/AmdAtiUtils$ python3 main.py
Traceback (most recent call last):
File "main.py", line 13, in <module>
import curses
File "/usr/local/lib/python3.4/curses/__init__.py", line 13, in <module>
from _curses import *
ImportError: No module named '_curses'

显然我运行3.4作为默认的Python3并且它没有安装curses?

我的问题是什么是我最好的选择? 将我的默认Python3设置为3.2.3? 用curses重新编译3.4? 去emo然后回到窗户? 还有另一种选择吗?

我的目标是能够运行我的程序(显然),但不会影响我的系统稳定性。

顺便说一句,这是程序: https://github.com/audricd/AmdAtiUtils

提前致谢。

1 个答案:

答案 0 :(得分:0)

首先,要了解系统中安装的Python版本,请在终端中运行:

$ python --version

其次,Python 3.4标准库提供了curses。嗯,实际上,正如Documentation所说:

  

Windows版本的Python不包含curses模块。

因此,如果您在Windows计算机上运行代码,则应阅读上面链接的文档以获得一个替代方案。

是的,现在是你的问题。从系统中隔离Python解释器的一些常用方法是使用virtualenv。你可以轻松地从pip中获取它:

# pip3 install virtualenv

之后,您可以通过以下方式创建虚拟环境:

$ virtualenv venv

它将为您生成一个与您的系统Python绑定隔离的新解释器(请注意,它将创建一个名为venv的目录)。要激活它:

$ source venv/bin/activate

现在,您可以为项目安装所有必需的模块,而不会弄乱您的系统(可能还有其他Python代码)。

此外,virtualenv允许您指定它将基于的Python版本。要做到这一点,你应该已经在你的系统上安装了这个特定的Python版本,你需要知道它的对应二进制文件在哪里。所以,你可以这样做:

virtualenv venv --python=/the/python/binary/here

设置virtualenv并激活它之后,您可以简单地键入:

python your_app.py

现在,您的代码将使用您使用virtualenv设置的Python版本运行。

你可以在documentation上获得更多virtualenv。


如果您故意想要使用特定于Python的版本并且未在系统上安装它,请从Python website下载并按照您在Python README中的说明进行操作。 donwload。如果您需要帮助,StackOverflow上有很多关于如何在不弄乱系统的情况下安装新Python版本的问题。