【问题标题】:How to know which instance of Python my script is being ran on? [duplicate]如何知道我的脚本在哪个 Python 实例上运行? [复制]
【发布时间】:2017-11-19 14:16:13
【问题描述】:

所以我正在尝试从任务调度程序运行脚本。它一直没有工作,在终端弹出并消失的第二秒,我能够读到它说“ImportError no Module named Pandas”我的脚本可以很好地导入 Pandas 并且运行良好,但是每当我双击脚本运行或安排它自动运行它说我没有熊猫。

我的理论是它使用了安装在这台没有安装 Pandas 库的计算机上的不同 Python 实例。但是,当我尝试使用 pip 在命令行上重新安装 pandas 时,它会发回“要求已经满足”。我将不胜感激任何建议或想法让我尝试。谢谢!

【问题讨论】:

  • 你是对的,你正在使用不同版本的 Python。 python --version 将为您提供系统中的默认 Python 版本。您可以通过在终端中输入python2.7python3.5 来使用特定版本的python。这将使您可以通过终端访问特定的 python。您系统中存在的不同 python 版本将在路径中可用:/usr/lib/python2.X

标签: python windows python-2.7 python-3.x scheduled-tasks


【解决方案1】:

sys.version_infosys.version 包含正在运行的 Python 版本。 sys.executable 包含运行的特定解释器的路径。

Python3:

>>> import sys
>>> sys.version_info
sys.version_info(major=3, minor=4, micro=3, releaselevel='final', serial=0)
>>> sys.version
'3.4.3 (default, Nov 17 2016, 01:08:31) \n[GCC 4.8.4]'
>>> sys.executable
'/usr/bin/python3'

Python2:

>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=6, releaselevel='final', serial=0)
>>> sys.version
'2.7.6 (default, Oct 26 2016, 20:30:19) \n[GCC 4.8.4]'
>>> sys.executable
'/usr/bin/python2'

问题似乎是您的注册表编辑器设置了一个不同的版本集来为 Python 可执行文件“单击”运行。您可以通过运行所需版本的 Python 安装程序并将其设置为修复,或修改“HKEY_CLASSES_ROOT\Python.File\Shell\open\command”以运行正确的 Python 可执行文件(应为“C:\Windows \py.exe")。请参阅this image 了解在哪里可以找到它。

如果您已经在使用 py.exe,在文件顶部添加一个 hashbang(#!Python<version>,或使用 Unix 可执行文件,#!/usr/bin/env python<version>)应该有助于 py.exe 选择正确的可执行文件来运行。

要使用 pip 安装特定的可执行文件,请运行 Path\To\Executable -m pip install <module>

要使用来自不同站点路径的模块,请将目录添加到 PYTHONPATH 环境变量中。使用 import <file> 将检查 PYTHONPATH 目录中的模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-04
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 2018-08-30
    • 2013-02-04
    相关资源
    最近更新 更多