从shell运行Python脚本会调用错误的interp

2024-10-02 10:19:18 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Windows7,我安装了三个版本的Python。在

  • C:\tools\python2\python.exe
  • C:\tools\python3\python.exe
  • C:\users\adsmith\.virtualenvs\flask_project\Scripts\python.exe

在我的virtualenv中运行where python证实了这一点。在

C:\Users\adsmith\.virtualenvs\flask_project\Scripts\python.exe
C:\tools\python3\python.exe
C:\tools\python2\python.exe

在virtualenv中运行python将调用第一个解释器

^{pr2}$

但是,如果我在virtualenv中创建一个.py文件并直接运行它,它将从系统python2解释器运行,我不知道为什么。运行python scriptname.py可以正常工作。在

(flask_project) C:\Users\adsmith>echo import sys; print(sys.executable) > tmp.py

(flask_project) C:\Users\adsmith>tmp.py
C:\tools\python2\Python.exe

(flask_project) C:\Users\adsmith>python tmp.py
C:\Users\adsmith\.virtualenvs\flask_project\Scripts\python.exe

供参考:

(flask_project) C:\Users\adsmith>assoc .py
.py=Python.File

(flask_project) C:\Users\adsmith>ftype Python.File
Python.File="python" "%1" %*

Tags: pyprojectflaskvirtualenvscriptsvirtualenvstoolsexe

热门问题