【问题标题】:Running Python in a command prompt在命令提示符下运行 Python
【发布时间】:2023-03-25 22:35:02
【问题描述】:

我有一些 python 代码,我想从 cmd 提示符运行,但是它不起作用,我的伙伴告诉我,如果我的代码中有这个语句:

if __name__ == '__main__':
    xs, a0, a1, y0, y1, ys = encode(sys.argv[1])
    np.set_printoptions(precision=6, suppress=True)

那么它应该能够运行。我将发布我的整个代码和我的命令提示错误,看看你们是否可以提供帮助

import random
import numpy as np
import sys
import pprint
from numpy import linalg as LA

#Takes in a n value
def encode(n):

    xA0 = np.zeros((n+3,1))
    xA1 = np.zeros((n+3,1))
    xStream = np.zeros((n+3,1))
#Creates a random x
    for i in range(0, n):
        xStream[i,0] = random.randint(0,1)

#Creates A0 and A1 based on size
    xA0[0,0] = 1
    xA0[2,0] = 1
    xA0[3,0] = 1

    xA1[0,0] = 1
    xA1[1,0] = 1
    xA1[3,0] = 1

    A0 = np.zeros((n+3,n+3))
    A1 = np.zeros((n+3,n+3))
    y0 = np.zeros((n+3,1))
    y1 = np.zeros((n+3,1))
    yStream = []

#Creates A0 and A1 using method defined in description
    for i in range(0,n+3):
        for k in range (0,i+1):
            A0[i,k] = xA0[i-k,0]
            A1[i,k] = xA1[i-k,0]

#A0*x and A1*x to get y0 and y1
    for i in range(0,n+3):
        y0[i,0] = np.dot(A0[i,:], xStream)
        y1[i,0] = np.dot(A1[i,:], xStream)

#answers mod 2 to get real answers
    for i in range(0,n+3):
        y0[i,0] = y0[i,0]%2
        y1[i,0] = y1[i,0]%2

#combined for yStream
    for i in range(0,n+3):
        yStream.append([y0[i,0],y1[i,0]])

    print("x:")
    print(xStream)
    print("\n")
    print("A0:")
    print(A0)
    print("\n")
    print("A1:")
    print(A1)
    print("\n")
    print("y0:")
    print(y0)
    print("\n")
    print("y1:")
    print(y1)
    print("\n")
    print("yStream:")
    print(yStream)

    return xStream, A0, A1, y0, y1, yStream

# This is only or when encode is used as a stand-alone module
# Read command line argument. Must be exactly one argument.
# It outputs on the console
if __name__ == '__main__':
    xs, a0, a1, y0, y1, ys = encode(sys.argv[1])
    np.set_printoptions(precision=6, suppress=True)

    print("x:")
    print(xs)
    print("\n")
    print("A0:")
    print(a0)
    print("\n")
    print("A1:")
    print(a1)
    print("\n")
    print("y0:")
    print(y0)
    print("\n")
    print("y1:")
    print(y1)
    print("\n")
    print("yStream:")
    print(ys)

【问题讨论】:

  • 你是如何安装python的,你是否允许它自己添加到你的系统路径中?
  • 尝试在命令提示符中使用py 而不是python
  • @Andy 我想我只是使用了一个安装程序,我可以检查一下 idk 吗?
  • @Andy 如果他安装了 Python
  • 安装程序通常只安装到 C:/Python

标签: python windows command-line


【解决方案1】:

由于您已安装到 D:\Python 中,请将以下内容复制到编辑器中并将其保存为 bat 文件(例如 runpython.bat)然后运行它(感谢 @eryksun 编辑)假设 Python 2:

@SET PATH=%PATH%;D:\Python;D:\Python\Scripts

@ASSOC .py=Python.File
@ASSOC .pyc=Python.CompiledFile
@ASSOC .pyo=Python.CompiledFile
@ASSOC .pyw=Python.NoConFile

@FTYPE Python.CompiledFile="D:\Python\python.exe" "%%1" %%*
@FTYPE Python.File="D:\Python\python.exe" "%%1" %%*
@FTYPE Python.NoConFile="D:\Python\pythonw.exe" "%%1" %%*
@SET PATHEXT=%PATHEXT%;.py

您现在应该可以从命令行运行 python 程序了

【讨论】:

  • 我以管理员身份运行它,它立即关闭,所以我看不到它说什么,但它似乎没有工作
  • @eryksun:很公平,你的任何观点都没有争议,我会修改。
  • @eryksun:没有@echo off。我发现在向文件类型添加新行时,我省略了 @ 所以我可以看到它正在执行。当我高兴时,我会在 @ 前加上前缀。也许只有我一个人,但你必须让我保留我原来的 一些 :-)
【解决方案2】:

转到

My Computer > Properties > Advanced System Settings > Environment Variables >

Variable value 中添加 Python 的路径。

【讨论】:

  • 我是否只需将 D:\Python 添加到变量值?因为那是我的 Python.exe 所在的位置
  • 是的,请务必输入;
  • 我做到了,但由于某种原因它仍然不适合我。我认为这就像让 java 工作一样。不知道我做错了什么
  • 要确保它正常工作,请在命令提示符下键入 python 或运行。如果它给你 python shell,它就起作用了。
猜你喜欢
  • 1970-01-01
  • 2016-12-08
  • 1970-01-01
  • 1970-01-01
  • 2021-08-28
  • 2020-12-16
  • 1970-01-01
  • 2012-07-07
  • 1970-01-01
相关资源
最近更新 更多