如何知道我的脚本在哪个 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.7
或python3.5
来使用特定版本的python。这将使您可以通过终端访问特定的 python。您系统中存在的不同 python 版本将在路径中可用:/usr/lib/python2.X
。
【参考方案1】:
sys.version_info
和 sys.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 实例上运行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Elastic beanstalk 上从我的 PHP 按需运行 python 脚本?
如何知道 Jupyter notebook 中运行的是哪个 Python?