Невозможно установить/найти модули через код Python (во время компиляции)Python

Программы на Python
Anonymous
Невозможно установить/найти модули через код Python (во время компиляции)

Сообщение Anonymous »

У меня есть скрипт Python, который при запуске в среде IDE и/или в виде файла .py в целом работает нормально. Все модули найдены и импортированы правильно. Затем возникла проблема: по какой-то причине, когда я компилирую скрипт через auto-py-to-exe, поиск и импорт модулей просто выходит из строя. Исполняемый файл не может найти ни один из модулей, поэтому пытается установить их все заново. Кроме того, у программы, похоже, возникают проблемы с их установкой в ​​целом, но меня больше беспокоит тот факт, что она даже не может найти указанные модули.
Просто дополнительно информация:
  • Я хочу сохранить индикатор выполнения и все такое, если это вообще применимо.
  • Фактические пакеты не поддерживаются. в скрипте, поэтому все не так долго ([пакеты]).
В текущем коде, указанном ниже, я получаю такой результат, который представляет собой просто цикл он просит установить необходимые модули, поэтому сейчас он немного сломан. Вот что я вижу:

-> Найдены неустановленные модули, установить их? (да/нет)
да


27 мая 2024 г. 15: 22:01,074 - ОТЛАДКА - Установка отсутствующих модулей...


27.05.2024 15:22:01,315 - ОТЛАДКА - Проверка отсутствия модулей...


2024-05-27 15:22:01,390 - ИНФОРМАЦИЯ - Отсутствующие пакеты: [пакеты]


Найдены неустановленные модули, установить их? (да/нет)
да


27 мая 2024 г. 15: 22:05,059 - ОТЛАДКА - Установка отсутствующих модулей...


27.05.2024 15:22:05,301 - ОТЛАДКА - Проверка отсутствия модулей...


27.05.2024 15:22:05,372 - ИНФОРМАЦИЯ - Отсутствующие пакеты: [пакеты]


Найдены неустановленные модули, установить их? (да/нет)
y

и затем цикл повторяется.
Это код, который я использую для этого:

Код: Выделить всё

imports (shortened, req imports are here)

logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')

def install_package(package):
"""Install a single package using pip."""
try:
subprocess.check_call([sys.executable, "-m", "pip", "install", package])
logging.info(f"Successfully installed {package}")
except subprocess.CalledProcessError as e:
logging.error(f"An error occurred while installing {package}: {e}")

def install_packages_with_progress(packages):
"""Install multiple packages with a progress bar."""
for package in tqdm(packages, desc="Installing Packages", ncols=100):
install_package(package)
time.sleep(0.5)

def check_missing_packages(packages):
"""Check for missing packages and return a list of them."""
missing_packages = []
for package in packages:
try:
pkg_resources.require(package)
except (pkg_resources.DistributionNotFound, pkg_resources.VersionConflict):
missing_packages.append(package)
return missing_packages

def clear_screen():
"""Clear the terminal screen."""
if os.name == "nt":
os.system("cls")
else:
os.system("clear")
print("\033[H\033[J", end="")

clear_screen()

required_packages = [
packages
]

logging.debug("Checking for missing modules...")
missing_packages = check_missing_packages(required_packages)

if missing_packages:
logging.info(f"Missing packages: {missing_packages}")
install = input(" -> Uninstalled Modules Found, Install Them? (y/n)\n>> ").strip().lower() == "y"

if install:
logging.debug("Installing missing modules...")
subprocess.check_call([sys.executable, "-m", "pip", "install", "--upgrade", "pip"], stdout=subprocess.DEVNULL)

install_packages_with_progress(missing_packages)

# Re-check for missing packages after installation
missing_packages = check_missing_packages(required_packages)

if not missing_packages:
logging.debug("All required modules installed successfully! Reboot the program...")
time.sleep(5)
else:
logging.error("Some modules could not be installed. Please check the errors and try again.")
exit(1)
else:
logging.debug("Aborting installation...")
exit(1)
else:
logging.debug("All required modules are already installed.")

clear_screen()
exit()
Это происходит только тогда, когда скрипт скомпилирован, когда он запускается в IDE или как обычный файл py, он работает отлично и правильно находит все модули.>

Подробнее здесь: https://stackoverflow.com/questions/785 ... e-compiled

Вернуться в «Python»