首页 > 解决方案 > venv\Scripts 中的可执行文件未被识别为命令

问题描述

我已经将一个 github 存储库 - pypastry - 克隆到我的 Windows 机器上,并运行pip install -e pypastry以将其安装在我的虚拟环境中,因此项目结构是这样的:

│-- pypastry
|-- venv
    |-- Scripts
        |-- pastry

正如我所料,名为“pastry”的可执行文件位于 venv\Scripts 中,但命令提示符无法识别它,并且我收到错误消息:

'pastry' is not recognized as an internal or external command, operable program or batch file

我不认为 PATH 有问题,因为 PATH 中的第一项是C:\Users\User\Documents\pypastry\venv\Scripts.

这是可执行文件本身:

#!c:\users\user\documents\pypastry\venv\scripts\python.exe
# EASY-INSTALL-DEV-SCRIPT: 'pypastry==0.0.1','pastry'
__requires__ = 'pypastry==0.0.1'
__import__('pkg_resources').require('pypastry==0.0.1')
__file__ = 'C:\\Users\\User\\Documents\\pypastry\\pypastry\\pastry'
with open(__file__) as f:
    exec(compile(f.read(), __file__, 'exec'))

任何人都可以在此文件中发现任何可能意味着它在 Windows 上未被识别为可执行文件或想到其他任何可能出错的内容吗?

编辑添加:

如果我使用显式 python 调用 ( python pypastry\pastry) 运行文件,它可以工作,但我不想这样做,因为它会产生其他问题。

标签: pythonwindowsconsole-applicationvirtualenv

解决方案


Windows 告诉您它在您的 PATH 上找不到名为“pastry”(pastry.exe, pastry.com, pastry.bat, pastry.cmd...)的可执行文件。

但是pastry.py是。不是吗?问题是您的 Windows 未配置为识别.py为可执行扩展。

要在不显式调用 的情况下在 Windows 中运行 python 脚本python.exe,首先需要将.py扩展​​名关联到可执行的 python。然后将.py扩展添加为可执行扩展。

您可以通过三个步骤来完成:

  1. 将 .py 扩展名关联到 PythonFile 文件类型

     ASSOC .py=PythonFile
    
  2. 将 PythonFile 关联到您的 python.exe 可执行文件

     FTYPE PythonFile="c:\users\user\documents\pypastry\venv\scripts\python.exe" "%1" %*
    
  3. 将 .py 文件扩展名关联为默认的可执行扩展名之一

     SET PATHEXT=.py;%PATHEXT%
    

推荐阅读