我在Ubuntu 16.04 LTS下。
我有两个python安装。我实际上是通过pvpython
使用它们,但这可能与目前的问题无关。
版本是:
apt-get
一起安装,驻留在系统目录中。 ~/apps/ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit
,只是从tar文件扩展而来。为了获得python提示,我运行~/apps/ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/bin/pvpython
。我的意思是在版本2中使用版本1的readline(因为它没有自己的版本,因为它可能很奇怪)。 要做到这一点:
查找版本1中readline
的位置:
>>> import readline
>>> readline.__file__
'/usr/lib/python2.7/lib-dynload/readline.x86_64-linux-gnu.so'
在this之后的版本2中使用它。我将所需内容放在dir1
目录sys.path
中,该目录是/home/santiago/apps/ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/lib/python2.7
的一个元素(我尝试了/home/santiago/apps/ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/lib/python2.7/lib-dynload
和.so
)。
2.1。获取$ cd dir1
$ ln -s /usr/lib/python2.7/lib-dynload/readline.x86_64-linux-gnu.so
文件。
readline.py
2.2。创建$ nano readline.py
def __bootstrap():
global __bootstrap, __loader__, __file__
import sys, pkg_resources, imp
__file__ = pkg_resources.resource_filename(__name__,'readline.x86_64-linux-gnu.so')
__loader__ = None; del __bootstrap, __loader__
imp.load_dynamic(__name__,__file__)
__bootstrap()
包含内容(根据ref above):
~/apps/ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/bin/pvpython
现在当我使用带有ImportError: No module named readline
的版本2时,我仍然会收到错误(我想要摆脱它)
import
来自~/.pythonrc
中的document.toString
。
如何将readline从版本1导入版本2?
答案 0 :(得分:0)
我设法解决了这个问题。
关键是要使用名称readline.so
而不是原始名称进行链接。
其余的都无关紧要。
在OP的2.1中:
$ cd ~/apps/ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/lib/python2.7/lib-dynload
$ ln -s /usr/lib/python2.7/lib-dynload/readline.x86_64-linux-gnu.so readline.so
就是这样。
事实证明,不需要readline.py
__bootstrap
(第2.2项)。