如何删除CMD指令以便在IDE控制台(Python)中运行程序?

如何删除CMD指令以便在IDE控制台(Python)中运行程序?,python,eclipse,cmd,ide,Python,Eclipse,Cmd,Ide,我有一个代码(如下),它只有在从CMD执行时才运行。我需要修改它,它必须在IDE控制台(Eclipse)中运行 当我尝试在Eclipse中执行此操作时,会出现以下错误: Traceback (most recent call last): File "C:\Users\User\workspace\TF\TF\predict_2.py", line 138, in <module> main(sys.argv[1]) IndexError: list index out

我有一个代码(如下),它只有在从CMD执行时才运行。我需要修改它,它必须在IDE控制台(Eclipse)中运行

当我尝试在Eclipse中执行此操作时,会出现以下错误:

Traceback (most recent call last):
  File "C:\Users\User\workspace\TF\TF\predict_2.py", line 138, in <module>
    main(sys.argv[1])
IndexError: list index out of range

正如@JCooke所说,必须在
main(sys.argv[1])
中删除/插入“other”来修改代码

在我的例子中,我必须在IDE控制台中查看图像的处理。在CMD中,我必须给出一个参数,该参数必须是图像本身的路径。
在代码中,我用图像的路径更改了sys.argv[1]。

您可能没有传递参数。如果你没有给出你用来产生错误的命令,你很难说出你做错了什么。你想做什么也不是很清楚。您的意思是如何从IDE终端运行此代码?或者如何将此代码转换为独立脚本?请在中编辑更多信息。谢谢您的回答。我试图做的是从IDE终端执行这段代码,而不是从CMD。我收到的错误就在上面。我可以看到错误,但看不到您键入的错误。请用完整信息编辑您的问题。看看如何提问以获得最佳帮助。啊,那么你不是指IDE终端。您的意思是从IDE运行脚本。这是因为脚本希望您通过图像文件传递参数。只需删除参数要求并在代码中传递图像,尝试将路径字符串传递给图像,而不是在底线上传递
sys.argv[1]
"""Predict a handwritten integer (MNIST expert).

Script requires
1) saved model (model2.ckpt file) in the same location as the script is run from.
(requried a model created in the MNIST expert tutorial)
2) one argument (png file location of a handwritten integer)

Documentation at:
http://niektemme.com/ @@to do
"""

#import modules
import sys
import tensorflow as tf
from PIL import Image, ImageFilter
import os
from datetime import datetime

def predictint(imvalue):
    """
    This function returns the predicted integer.
    The input is the pixel values from the imageprepare() function.
    """

    # Define the model (same as when creating the model file)
    x = tf.placeholder(tf.float32, [None, 784])
    W = tf.Variable(tf.zeros([784, 10]))
    b = tf.Variable(tf.zeros([10]))

    def weight_variable(shape):
      initial = tf.truncated_normal(shape, stddev=0.1)
      return tf.Variable(initial)

    def bias_variable(shape):
      initial = tf.constant(0.1, shape=shape)
      return tf.Variable(initial)

    def conv2d(x, W):
      return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

    def max_pool_2x2(x):
      return tf.nn.max_pool(x, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')   

    W_conv1 = weight_variable([5, 5, 1, 32])
    b_conv1 = bias_variable([32])

    x_image = tf.reshape(x, [-1,28,28,1])
    h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
    h_pool1 = max_pool_2x2(h_conv1)

    W_conv2 = weight_variable([5, 5, 32, 64])
    b_conv2 = bias_variable([64])

    h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)
    h_pool2 = max_pool_2x2(h_conv2)

    W_fc1 = weight_variable([7 * 7 * 64, 1024])
    b_fc1 = bias_variable([1024])

    h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*64])
    h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)

    keep_prob = tf.placeholder(tf.float32)
    h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)

    W_fc2 = weight_variable([1024, 10])
    b_fc2 = bias_variable([10])

    y_conv=tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2)

    init_op = tf.initialize_all_variables()
    saver = tf.train.Saver()

    """
    Load the model2.ckpt file
    file is stored in the same directory as this python script is started
    Use the model to predict the integer. Integer is returend as list.

    Based on the documentatoin at
    https://www.tensorflow.org/versions/master/how_tos/variables/index.html
    """
    with tf.Session() as sess:
        sess.run(init_op)
        saver.restore(sess, "model2.ckpt")
        #print ("Model restored.")

        prediction=tf.argmax(y_conv,1)

        return prediction.eval(feed_dict={x: [imvalue],keep_prob: 1.0}, session=sess)

def imageprepare(argv):
    """
    This function returns the pixel values.
    The input is a png file location.
    """
    im = Image.open(argv).convert('L')
    width = float(im.size[0])
    height = float(im.size[1])
    newImage = Image.new('L', (28, 28), (255)) #creates white canvas of 28x28 pixels

    if width > height: #check which dimension is bigger
        #Width is bigger. Width becomes 20 pixels.
        nheight = int(round((20.0/width*height),0)) #resize height according to ratio width
        if (nheight == 0): #rare case but minimum is 1 pixel
            nheigth = 1  
        # resize and sharpen
        img = im.resize((20,nheight), Image.ANTIALIAS).filter(ImageFilter.SHARPEN)
        wtop = int(round(((28 - nheight)/2),0)) #caculate horizontal pozition
        newImage.paste(img, (4, wtop)) #paste resized image on white canvas
    else:
        #Height is bigger. Heigth becomes 20 pixels. 
        nwidth = int(round((20.0/height*width),0)) #resize width according to ratio height
        if (nwidth == 0): #rare case but minimum is 1 pixel
            nwidth = 1
         # resize and sharpen
        img = im.resize((nwidth,20), Image.ANTIALIAS).filter(ImageFilter.SHARPEN)
        wleft = int(round(((28 - nwidth)/2),0)) #caculate vertical pozition
        newImage.paste(img, (wleft, 4)) #paste resized image on white canvas

    #newImage.save("sample.png")

    tv = list(newImage.getdata()) #get pixel values

    #normalize pixels to 0 and 1. 0 is pure white, 1 is pure black.
    tva = [ (255-x)*1.0/255.0 for x in tv] 
    return tva
    #print(tva)

def main(argv):
    """
    Main function.
    """
    imvalue = imageprepare(argv)
    predint = predictint(imvalue)
    print (predint[0]) #first value in list

if __name__ == "__main__":
    main(sys.argv[1])