gpt4 book ai didi

python - 将模块从一个 python 安装导入到另一个

转载 作者:行者123 更新时间:2023-12-04 18:45:09 25 4
gpt4 key购买 nike

我在 Ubuntu 16.04 LTS 下。

我有两个 python 安装。我实际上是通过 pvpython 使用它们,但这可能与当前问题无关。
版本是:

  • Python 2.7.12,随 apt-get 一起安装,驻留在系统目录中。
  • Python 2.7.11,位于 ~/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(因为它没有自己的,可能很奇怪)。
    去做这个:
  • 查找 readline 在哪里在版本 1 中:
    >>> import readline
    >>> readline.__file__
    '/usr/lib/python2.7/lib-dynload/readline.x86_64-linux-gnu.so'
  • 在版本 2 中使用它,跟在 this 之后.我把需要的东西放在了一个目录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 )。

    2.1。获取 .so文件。
    $ cd dir1
    $ ln -s /usr/lib/python2.7/lib-dynload/readline.x86_64-linux-gnu.so

    2.2.创建 readline.py
    $ nano readline.py

    内容(根据 ref above ):
    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()

  • 现在,当我使用带有 ~/apps/ParaView-5.4.1-Qt5-OpenGL2-MPI-Linux-64bit/bin/pvpython 的版本 2 时,我仍然得到错误(我想摆脱)
    ImportError: No module named readline

    来自 import在我的 ~/.pythonrc .

    如何将 readline 从版本 1 导入到版本 2?

    最佳答案

    我设法解决了这个问题。
    关键是与名称链接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 项)是不需要的。

    关于python - 将模块从一个 python 安装导入到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49185598/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com