【问题标题】:How to run anaconda2 python on anaconda3 python如何在 anaconda3 python 上运行 anaconda2 python
【发布时间】:2020-11-04 14:31:14
【问题描述】:

我有两个静态 python 版本 3.7 和 2.7 第一个静态位置是:~/anaconda3/bin/python 第二个静态位置是:~/anaconda2/bin/python

我想在 python 3 的另一个脚本中运行一个仅适用于 python2 的方法。

另外,我想从那个 python2 脚本中获取一个返回值。

什么是合适的解决方案?

谢谢

【问题讨论】:

    标签: python python-3.x python-2.7 anaconda


    【解决方案1】:

    我认为适当的解决方案是只使用一个 conda 安装。

    然后在该安装中,您可以为 python 2 创建一个环境,为 python3 创建另一个环境。

    conda create --name py2 python=2.7
    conda create --name py3 python=3.5
    

    来源: https://docs.anaconda.com/anaconda/user-guide/tasks/switch-environment/

    之后就可以使用py3环境运行python3部分,py2环境运行python2部分了。

    您可能必须在 py2 和 py3 环境中安装“相同”的软件包。但这很好。例如,包 X 可能有一个适用于 python2 的旧版本和一个适用于 python3 但不适用于 python 2 的新版本。在这种情况下,您在 py2 上安装旧版本,在 py 3 上安装新版本

    在 python 2 和 python 3 脚本之间传递值:使用 python 2 脚本将值保存到文件中。然后让python3脚本读取文件。

    【讨论】:

    • 这个尾声将由不同的用户运行,然后你的情况下的结果文件将被覆盖,至少给出一个动态名称将是一个解决方案,我不知道我应该打开哪个在python3中
    • 使用 python3 创建一个运行 python2 脚本的 shell。 python2脚本打印到stdout,python3从stdout获取结果可以工作。你想在 python2 和 python3 之间传递什么? python2中有多少代码?
    • 这是另一个 AI 模型,它生成一些结果并将它们返回给 python3 脚本。
    • 使用python3创建一个临时目录,创建一个运行python2脚本的shell,并传递temp的路径。目录作为 python2 脚本的命令行参数。 Python2 保存到临时目录。 Python3 从临时目录中检索结果。如果您在 /tmp 中创建临时目录,则可能存在安全问题。可能你应该问另一个问题,在 python3 和 python2 脚本之间传递值。
    【解决方案2】:

    解决方案是创建一个包含参数数据的文件(如果文件很长)。 然后我将文件名作为参数传递{您必须让其他脚本解析该文件} 示例:

    python2 = "~/anaconda2/bin/python"
    script = "\'import Python2Function as pf ; pf.main(\"{0}\",\"{1}\")\'".format(shortargument, file2name)
    output = os.popen(python2 + ' -c ' + script).read()
    

    创建一个随机文件名: 你可以使用

    import uuid
    str(uuid.uuid4()) + '.tsv'
    

    谢谢你,祝你好运:)

    【讨论】:

      猜你喜欢
      • 2018-03-02
      • 1970-01-01
      • 2021-08-02
      • 2018-04-27
      • 1970-01-01
      • 2017-02-06
      • 2018-11-17
      • 1970-01-01
      • 2019-09-07
      相关资源
      最近更新 更多