如何知道我的脚本在哪个 Python 实例上运行? [复制]

Posted

技术标签:

【中文标题】如何知道我的脚本在哪个 Python 实例上运行? [复制]【英文标题】:How to know which instance of Python my script is being ran on? [duplicate] 【发布时间】: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 【参考方案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 目录中的模块。

【讨论】:

以上是关于如何知道我的脚本在哪个 Python 实例上运行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何确定 Python 脚本作为哪个用户和组运行?

如何在 Elastic beanstalk 上从我的 PHP 按需运行 python 脚本?

如何知道 Jupyter notebook 中运行的是哪个 Python?

如何在部署到 Elastic Beanstalk 后运行 Python 脚本

如何在 HTML 中运行 python 脚本?

如何触发 EC2 实例并在每个实例上上传/运行启动脚本?