Я создаю сценарий, который подключается к сетевой папке с указанием c имени пользователя и пароля, которые я не даю пользователю. Этот сценарий соединяется с сетевой папкой в течение 1 или 2 секунд, делает что-то и отключается после этого, чтобы убедиться, что пользователь не сможет получить доступ к сетевой папке после этого.
Я отлично работаю в своей среде разработки. Я использую cx_Freeze, чтобы конвертировать мой .py в .exe (я использую его для другой маленькой программы много раз)
Проблема в том, что файл .exe работает нормально только на том же P C, где я разрабатываю свое приложение , На всех других P C это выдает мне ошибку: Файл "network.py", строка 1, в ImportError: Ошибка загрузки DLL: Le модуль spécifié est introuvable (в engli sh он не может найти указанный модуль)
Пытаюсь добавить DLL win32 wnet. но не работает.
Что я делаю не так.
См. Мой код и мой код импорта
'' '
import win32wnet
import os
import re
# configure initial parameter
shareFolder = "\\\\ultra\\circuit-bgo"
usager = "foo"
motPasse = "foo"
# use win32wnet to create resorce to connect or disconnect
net_resource = win32wnet.NETRESOURCE()
net_resource.lpRemoteName = shareFolder
# try to disconnect to be sure no connection steel exist
try:
win32wnet.WNetCancelConnection2(net_resource.lpRemoteName,0,0)
except:
pass
# create connection to network folder
laConnection = win32wnet.WNetAddConnection2(net_resource, motPasse, usager, 0)
if os.path.exists(net_resource.lpRemoteName):
print("connection réussi")
# do some stuff, like read write and modify some files ( 1 or 2 secondes )
else:
print("connection ÉCHOUÉ")
# opps, connection failed
# disconnect to the network folder. I don't want user can access the folder by itself
try:
win32wnet.WNetCancelConnection2(net_resource.lpRemoteName,0,0)
except:
pass
' ''
Импортируйте код с помощью cx_freeze
'' '
import os
import sys
from cx_Freeze import setup, Executable
base = None
if sys.platform == 'win32':
base = 'Win32GUI'
#syspath = "c:\\Python32\\Lib\\site-packages\\win32\\perfmondata.dll"
buildOptions = dict(
packages=['win32wnet'],
excludes=[],
include_files=['perfmondata.dll',]
)
executables = [Executable('network.py', base=base)]
setup(name='TestNetwork',
version='0.1',
options=dict(build_exe=buildOptions),
description='NetWork',
executables=executables
)
' ''
и я пробую код basi c, когда я обычно компилирую с помощью cx_freeze
это командный файл:
cxfreeze.bat "c: / Python32 / Scripts / network.py" --base-name = Win32 GUI --target-dir C : / Python32 / Скрипты / Dist_Network --icon c: / Python32 / Скрипты / Lo go .ico