Ошибка импорта NumPy при выполнении исполняемого файла, созданного с помощью Py2exe - PullRequest
0 голосов
/ 20 февраля 2019

Я понял, мой первый исполняемый файл с Py2exe на Windows.Скрипт использует библиотеки:

import os
import pandas as pd
import numpy as np
from pandas import ExcelWriter
import datetime as dt

Мой установочный файл:

from cx_Freeze import setup, Executable
import os
import sys

os.environ['TCL_LIBRARY'] = r'C:\Program Files\Continuum\Anaconda3\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Program Files\Continuum\Anaconda3\tcl\tk8.6'

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(name = "my first executable",
    version = "0.1",
    description = "Executable",
    executables = [Executable("myscript.py")])

Я пытался проверить мой.exe, запустив команду из терминала:

>> myscript.exe

Но возвращается ошибка:

ImportError: отсутствуют обязательные зависимости ['NumPy'].

Как я могу исправить эту ошибку?Я установил NumPy, почему бы и нет?Нужно ли указывать это в установочном файле?

1 Ответ

0 голосов
/ 20 февраля 2019

Если вы хотите попробовать PyInstaller , я использую этот небольшой скрипт, чтобы облегчить мне жизнь:

import sys, os
import tkinter as tk
from tkinter import filedialog

print(
    """
=======================================
Create a .exe file from a Python Script
=======================================

Select the Python script you want to create the .exe from:

""")

root = tk.Tk()
root.withdraw()

file_p = filedialog.askopenfilename(initialdir = "./", title = "Select file", filetypes = ((".py files","*.py"), (".pyw files","*.pyw"))) 

if file_p == "." or file_p == None:
    sys.exit()

if file_p.endswith('.pyw'):
    cmd = ('pyinstaller.exe --windowed --onefile ' + '"' + file_p + '"')
    os.system(cmd)

if file_p.endswith('.py'):
    cmd = ('pyinstaller.exe --onefile ' + '"' + file_p + '"')
    os.system(cmd)

os.system('pause')

Он создает один .exe-файл в папке dist, расположенной рядомтуда, где сценарий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...