I am running the following code:
pyinstaller --onefile main.py
main.py
looks like:
import sys
import os
sys.path.append(r'C:ModelUtilities')
from import_pythonpkg import *
......
import_pythonpkg.py
looks like:
from astroML.density_estimation import EmpiricalDistribution
import calendar
import collections
from collections import Counter, OrderedDict, defaultdict
import csv
....
By running the pyinstaller
on main.py
, main.exe
file is created successfully.
But when I run main.exe
it gives error with astroML
. If I move astroML
to main.py
from import_pythonpkg.py
, there is no error with astroML
. Now I get error with csv
.
i.e. if I change my main.py
to look as:
import sys
from astroML.density_estimation import EmpiricalDistribution
import os
sys.path.append(r'C:ModelUtilities')
from import_pythonpkg import *
......
The astroML
error is no longer present when I run main.exe
.
There is no error with import calendar
line in import_pythonpkg.py
at all.
I am not sure how to handle this random error with packages when running main.exe
after pyinstaller
run.
import_pythonpkg
is located at r'C:ModelUtilities'
Edit:
Error with main.exe
looks as following even though the original main.py
runs fine. Pyinstaller was even able to let me create the main.exe
without error.
Traceback (most recent call last):
File "main.py", line 8, in <module>
File "C:ModelUtilitiesimport_pythonpkg.py", line 1, in <module>
from astroML.density_estimation import EmpiricalDistribution
ImportError: No module named astroML.density_estimation
[29180] Failed to execute script main
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…