2016-01-29 58 views
0

我使用的是Ubuntu 14.04。尽管我必须保留我的“主”python安装为2.7.6,但我需要安装2.7.9才能使用ssl.SSLContext,以使Flask能够处理HTTPS请求。自定义python安装位置:tkinter问题

但是,如果我只是做:

sudo make install

sudo make altinstall

在Python-2.7.9目录

,我最终得到:

make: *** [libinstall] Error 1

编辑:这似乎在sudo make install末:

... 
Compiling /usr/local/lib/python2.7/xml/sax/saxutils.py ... 
Compiling /usr/local/lib/python2.7/xml/sax/xmlreader.py ... 
Compiling /usr/local/lib/python2.7/xmllib.py ... 
Compiling /usr/local/lib/python2.7/xmlrpclib.py ... 
Compiling /usr/local/lib/python2.7/zipfile.py ... 
make: *** [libinstall] Error 1 

所以我把它安装到自定义目录通过修改调用./config,这并没有产生libinstall错误。

然而,当我尝试导入Tkinter的成Python 2.7.9(从自定义目录下运行),我得到:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/repos/Python279/lib/python2.7/lib-tk/Tkinter.py", line 39, in <module> 
    import _tkinter # If this fails your Python may not be configured for Tk 
ImportError: No module named _tkinter 

如果我先走一步,安装香草的方式(即,非-custom目录),并简单地忽略libinstall的错误,我得到的,在导入Tkinter的:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/lib-tk/Tkinter.py", line 39, in <module> 
    import _tkinter # If this fails your Python may not be configured for Tk 
ImportError: /usr/lib/python2.7/lib-dynload/_tkinter.so: undefined symbol: PyFPE_jbuf 

没有人有任何想法是怎么回事?

+0

非官方回购的Ubuntu与Python 2.7.x安装了它,蟒蛇戏剧launchpad.net/~fkrull/+archive/ubuntu/deadsnakes-python2.7 – furas

+0

显示“make install”的完整错误消息。也许你需要一些* .h文件,你必须安装另一个包。 – furas

+0

@furas我不确定你的意思,但它似乎是唯一出现的问题。请参阅编辑的评论。另外,你能否解释更多关于什么回购是完全的? – eriophora

回答

1

你可以做到这一点按照furas的建议,通过 Python 2.7 PPA maintained be Felix Krull安装的工作非常出色。谢谢Furas!

编辑的一些注意事项:

  1. 因为这个PPA安装python2.7(特别是v 2.7.11,截至2016年1月29日),这消除了需要一个定制的Python安装位置
  2. HTTPS://
  3. 虽然PPA网站提到,这并不包括python-tk,只要你有它就好了(解决我的问题)
+0

还有[Python 3.x的回购](https://launchpad.net/~fkrull/+archive/ubuntu/deadsnakes) - 同一作者。但是你必须用'apt-get' - 'pythom3.5'和'python3.5-tk'安装两个模块。和[说明如何安装](http://askubuntu.com/a/682875/177036) – furas

0

首先来自程序的源代码必须进行配置,编译,然后安装。所有的

./configure # Or ./config depending on the file name 
make 
make install 

其次,当你试图导入_tkinter你想导入的被称为Tkinter.py 尝试使用.py文件的模块:

import Tkinter 
+0

'Tkinter'模块可能在内部导入'_tkinter'模块。 – furas

+0

我做了所有这些步骤(我目前有两个单独的安装,'。/ configure'(它会引发'libinstall'错误,但仍然可以通过键入'python2.7'来调用)和'./configure --prefix/my/custom/install/dir'),而且我的确在导入'Tkinter',它在内部导入'_tkinter'。 – eriophora