Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不安装python的情况下作为服务运行python程序?_Python_Windows_Service - Fatal编程技术网

在不安装python的情况下作为服务运行python程序?

在不安装python的情况下作为服务运行python程序?,python,windows,service,Python,Windows,Service,我编写了一个程序,可以在特定时间自动更改系统的IP地址/密码。此外,它还有两个单独的python文件 第一个是在服务下运行主程序的程序,从用户检索所需信息并将其存储在“.txt”文件中 # Import/Lib import os import sys import pysc import time # Services if __name__ == '__main__': service_name = 'test4' script_path = os.path.join

我编写了一个程序,可以在特定时间自动更改系统的IP地址/密码。此外,它还有两个单独的python文件

第一个是在服务下运行主程序的程序,从用户检索所需信息并将其存储在“.txt”文件中

# Import/Lib

import os
import sys
import pysc
import time

# Services


if __name__ == '__main__':
    service_name = 'test4'
    script_path = os.path.join(
        os.path.dirname(__file__)+"\\"+"Run.exe"

    )
    pysc.create(
        service_name=service_name,
        cmd=[sys.executable, script_path]

    )
    print("CreateService SUCCESS")
    pysc.start(service_name)
    print("StartService SUCCESS")


# Input data

time_today = input("Enter a Time (MM:SS): ")
date_today = input("Enter a Date (YYYY-MM-DD): ")

adapter_name = input("Enter your interface name: ")
interface_name = "\"" + adapter_name + "\""
static_ip = input("Enter your static ip: ")
subnet = input("Enter your subnet mask: ")
gateway = input("Enter your gateway: ")
time.sleep(0.5)
print("")

pass_complexity = "Windows password complexity rules:""\n" \
                              "-Password must not contain the user's account name or more than two consecutive "\
                                                                    "characters from the user's full name.""\n"\
                              "-Password must be six or more characters long.""\n"\
                              "-Password must contain characters from three of the following four categories:""\n"\
                              "  .Uppercase characters A-Z (Latin alphabet)""\n"\
                              "  .Lowercase characters a-z (Latin alphabet)""\n"\
                              "  .Digits 0-9""\n"\
                              "  .Special characters (!, $, #, %, etc.)""\n"
print(pass_complexity)
password = input("New password: ")
conform_pass = input("Confirm password: ")

stop = True

while stop == True:

    if password == conform_pass:
        print("Input info completed")

        print("Interface adapter", interface_name + ":")
        print("IPv4 Address. . . . . . . . . . . : ", static_ip)
        print("Subnet Mask . . . . . . . . . . . : ", subnet)
        print("Default Gateway . . . . . . . . . : ", gateway, "\n")
        print("Your password:", password, "\n")

        stop = False
    else:
        print("Sorry, passwords do not match.", "\n")
        password = input("New password: ")
        conform_pass = input("Confirm password: ")


# Write file

file_name = os.path.dirname(__file__)+"\\"+"Network Monitoring Utility.txt"

my_file = open(file_name, 'w')
my_file.write(time_today+" ")
my_file.write(date_today+" ")
my_file.write(interface_name+" ")
my_file.write(static_ip+" ")
my_file.write(subnet+" ")
my_file.write(gateway+" ")
my_file.write(password+" ")

my_file.close()

wait = input("Please enter for exit.")
第二个程序通过读取所需的.txt文件信息,将系统时钟与读取时间进行比较。如果系统日期和时间与输入的日期和时间相同,则会更改系统的IP地址/密码

# Import Lib


import subprocess
import getpass
from datetime import date
import datetime
import time

time.sleep(90)


# Read data

my_file = open('Network Monitoring Utility.txt', 'r')
data = my_file.read()
data = data.split()
my_file.close()

time = data[0]
set_date = data[1]
interface_name = data[2]
static_ip = data[3]
subnet = data[4]
gateway = data[5]
password = data[6]

# Check data and time and change ip, subnet mask, gateway and password

stop = True

while stop == True:
    now_time = str(datetime.datetime.now().time())
    now_date = str(date.today())

    if now_date == set_date and now_time > time:

        stop = False
        subprocess.check_call("netsh interface ipv4 set address name="
                              + interface_name + " " + "static" + " " + static_ip + " " + subnet + " "
                              + gateway, shell=True)


        username = getpass.getuser()

        subprocess.check_call("net users " + username + " " + password, shell=True)
当我在Pycharm中运行这个程序时,它运行起来没有任何问题。但当我使用pyinstaller将两个程序转换为“.exe”时,该程序将不会在服务下运行。这将导致错误

filenotfounderror: [winerror 2] the system cannot find the file specified.
此消息也是因为程序需要Python可执行文件才能在服务上严格运行。 如何在不必在系统上安装Python的情况下运行此服务