为了账号安全,请及时绑定邮箱和手机立即绑定

蟒蛇 - ATBS 附录 B - 在 C 中找到“__main__”模块:\\ 路径错误

蟒蛇 - ATBS 附录 B - 在 C 中找到“__main__”模块:\\ 路径错误

Qyouu 2022-09-20 15:48:03
我正在尝试完成附录B自动化无聊的东西 - “在Windows上运行Python程序”,但是当我WIN-是脚本和argv时,我得到错误“找不到C:\ 中的'__主__'模块'路径。我已经创建了.py脚本以及批处理文件,更改了系统变量路径,但仍然无法让程序从WIN-R运行。我的 pw.py 脚本如下:#! /usr/bin/env python3# pw.py - An insecure password locker program.PASSWORDS = {'email': 'F7min1BDDuvMJuxESSKHFhTxFtjVB6',                'blog': 'VmALvQyKAxiVH5G8v01if1MLZF3sdt',                'luggage': '12345'}import sysimport pyperclipif len(sys.argv) < 2:    print('Usage: python pw.py [account] - copy account password')    sys.exit()account = sys.argv[1]   #first command line arg is the account nameif account in PASSWORDS:    pyperclip.copy(PASSWORDS[account])    print('Password for ' + account + ' copied to clipboard.')else:    print('There is no account named ' + account) 我的pw.bat文件如下:@py.exe C:\Users\lukev\PythonScripts %*@pause当我在 WIN-R 中运行时,我收到以下错误:pw emailC:\Users\lukev\AppData\Local\Programs\Python\Python38-32\python.exe: can't find '__main__' module in 'C:\\Users\\lukev\\PythonScripts'从我的研究中,我发现shebang线不应该像书中描述的那样,而应该像书中描述的那样,另一种可能性是,如果我安装了多个版本的Python,但是我没有安装其他版本,仍然有问题。#! /usr/bin/env python3以下是python文件,批处理文件,系统环境变量和错误消息的屏幕截图:pw.py啪.bat系统变量错误信息
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

您使用

@py.exe C:\Users\lukev\PythonScripts %*

在批处理文件中。要传递到的路径是文件夹路径。py.exe

这将创建一个错误:

C:\Users\lukev\AppData\Local\Programs\Python\Python38-32\python.exe: can't find '__main__' module in 'C:\\Users\\lukev\\PythonScripts'

错误是精确的。路径是文件夹路径,因此Python所做的是查找入口点。如图所示,该入口点是 。如果找不到入口点,则会显示错误消息。__main__.py

如果要执行文件,请直接执行它:

@py.exe C:\Users\lukev\PythonScripts\pw.py %*

要了解模块入口点,请创建一个名为 的文件夹,并在名为 的目录中创建一个文件。在此文件中插入以下代码:__main__C:\PythonExecutable__main__.py

import sys


if __name__ == '__main__':


    # Check command line arguments.

    if len(sys.argv) > 1:

        if sys.argv[1] == '-h':

            print('I am here to help')

        else:

            for index, item in enumerate(sys.argv):

                print(index, item)

    else:

        print('I am ', __name__)

在命令提示符下输入一些命令:


C:\> py PythonExecutable

I am  __main__


C:\> py PythonExecutable -h

I am here to help


C:\> py PythonExecutable arg1 arg2 arg3 "I am the fourth"

0 PythonExecutable

1 arg1

2 arg2

3 arg3

4 I am the fourth


C:\>

不应用 中的 shebang 行,因为不会从此文件中读取。__main__.pypy.exe


查看完整回答
反对 回复 2022-09-20
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信