2

On Windows, I wanna run pyinstaller myapp.py -w -f but I have some errors with crypto modules.

In my code I use 4 imports, each one of these 4 imports (independently) gives me this same error

from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
import browser_cookie3

I have tried few things I have found on Google and Stackoverflow :

pip install pycryptodome
pip install pycryptodomex
pip install pycrypto
pip install pycrypto --upgrade

This is the error of pyinstaller triggered by thoses lines (each one triggers the error):

ModuleNotFoundError: No module named 'Crypto.Math'

(base) C:\Users\User1\.spyder-py3>pyinstaller temp.py --clean --noconsole --onefile
108 INFO: PyInstaller: 3.5
108 INFO: Python: 3.7.3
109 INFO: Platform: Windows-10-10.0.18362-SP0
110 INFO: wrote C:\Users\User1\.spyder-py3\temp.spec
112 INFO: UPX is not available.
113 INFO: Removing temporary files and cleaning cache in C:\Users\User1\AppData\Roaming\pyinstaller
275 INFO: Extending PYTHONPATH with paths
['C:\\Users\\User1\\.spyder-py3', 'C:\\Users\\User1\\.spyder-py3']
276 INFO: checking Analysis
278 INFO: Building Analysis because Analysis-00.toc is non existent
280 INFO: Initializing module dependency graph...
295 INFO: Initializing module graph hooks...
299 INFO: Analyzing base_library.zip ...
9372 INFO: running Analysis Analysis-00.toc
9404 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
  required by c:\users\User1\anaconda3\python.exe
9956 INFO: Caching module hooks...
9966 INFO: Analyzing C:\Users\User1\.spyder-py3\temp.py
10250 INFO: Processing pre-safe import module hook   six.moves
18166 INFO: Processing pre-find module path hook   distutils
18581 INFO: Processing pre-find module path hook   site
18582 INFO: site: retargeting to fake-dir 'c:\\users\\User1\\anaconda3\\lib\\site-packages\\PyInstaller\\fake-modules'
23353 INFO: Processing pre-safe import module hook   setuptools.extern.six.moves
40091 INFO: Processing pre-safe import module hook   urllib3.packages.six.moves
46752 INFO: Loading module hooks...
46753 INFO: Loading module hook "hook-certifi.py"...
46759 INFO: Loading module hook "hook-Crypto.py"...
Traceback (most recent call last):
  File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'Crypto.Math'
46884 INFO: Loading module hook "hook-cryptography.py"...
47419 INFO: Loading module hook "hook-distutils.py"...
47422 INFO: Loading module hook "hook-encodings.py"...
47585 INFO: Loading module hook "hook-httplib2.py"...
47589 INFO: Loading module hook "hook-keyring.backends.py"...
47709 INFO: Loading KWallet
47712 INFO: Loading SecretService
47715 INFO: Loading Windows
47717 INFO: Loading chainer
47718 INFO: Loading macOS
47913 INFO: Loading module hook "hook-lib2to3.py"...
47919 INFO: Loading module hook "hook-pkg_resources.py"...
49245 INFO: Processing pre-safe import module hook   win32com
50003 INFO: Loading module hook "hook-pycparser.py"...
50004 INFO: Loading module hook "hook-pydoc.py"...
50006 INFO: Loading module hook "hook-pythoncom.py"...
51079 INFO: Loading module hook "hook-pywintypes.py"...
52124 INFO: Loading module hook "hook-setuptools.py"...
66447 INFO: Loading module hook "hook-sqlite3.py"...
66594 INFO: Loading module hook "hook-sysconfig.py"...
66596 INFO: Loading module hook "hook-win32com.py"...
67931 INFO: Loading module hook "hook-xml.dom.domreg.py"...
67932 INFO: Loading module hook "hook-xml.etree.cElementTree.py"...
67934 INFO: Loading module hook "hook-xml.py"...
67937 INFO: Loading module hook "hook-importlib_metadata.py"...
67940 INFO: Loading module hook "hook-numpy.core.py"...
68078 INFO: MKL libraries found when importing numpy. Adding MKL to binaries
68085 INFO: Loading module hook "hook-numpy.py"...
68087 INFO: Loading module hook "hook-pytest.py"...
70238 INFO: Loading module hook "hook-scipy.py"...
70347 INFO: Looking for ctypes DLLs
70502 INFO: Analyzing run-time hooks ...
70522 INFO: Including run-time hook 'pyi_rth_multiprocessing.py'
70527 INFO: Including run-time hook 'pyi_rth_pkgres.py'
70529 INFO: Including run-time hook 'pyi_rth_win32comgenpy.py'
70533 INFO: Including run-time hook 'pyi_rth_certifi.py'
70567 INFO: Looking for dynamic libraries
70682 WARNING: lib not found: tbb.dll dependency of c:\users\User1\anaconda3\Library\bin\mkl_tbb_thread.dll
70738 WARNING: lib not found: msmpi.dll dependency of c:\users\User1\anaconda3\Library\bin\mkl_blacs_msmpi_lp64.dll
70854 WARNING: lib not found: pgf90rtl.dll dependency of c:\users\User1\anaconda3\Library\bin\mkl_pgi_thread.dll
70905 WARNING: lib not found: pgf90.dll dependency of c:\users\User1\anaconda3\Library\bin\mkl_pgi_thread.dll
70953 WARNING: lib not found: pgc14.dll dependency of c:\users\User1\anaconda3\Library\bin\mkl_pgi_thread.dll
71133 WARNING: lib not found: mpich2mpi.dll dependency of c:\users\User1\anaconda3\Library\bin\mkl_blacs_mpich2_lp64.dll
71258 WARNING: lib not found: impi.dll dependency of c:\users\User1\anaconda3\Library\bin\mkl_blacs_intelmpi_ilp64.dll
71480 WARNING: lib not found: msmpi.dll dependency of c:\users\User1\anaconda3\Library\bin\mkl_blacs_msmpi_ilp64.dll
71837 WARNING: lib not found: impi.dll dependency of c:\users\User1\anaconda3\Library\bin\mkl_blacs_intelmpi_lp64.dll
71928 WARNING: lib not found: mpich2mpi.dll dependency of c:\users\User1\anaconda3\Library\bin\mkl_blacs_mpich2_ilp64.dll
72982 INFO: Looking for eggs
72982 INFO: Using Python library c:\users\User1\anaconda3\python37.dll
72986 INFO: Found binding redirects:
[]
73008 INFO: Warnings written to C:\Users\User1\.spyder-py3\build\temp\warn-temp.txt
73333 INFO: Graph cross-reference written to C:\Users\User1\.spyder-py3\build\temp\xref-temp.html
73395 INFO: checking PYZ
73395 INFO: Building PYZ because PYZ-00.toc is non existent
73398 INFO: Building PYZ (ZlibArchive) C:\Users\User1\.spyder-py3\build\temp\PYZ-00.pyz
77077 INFO: Building PYZ (ZlibArchive) C:\Users\User1\.spyder-py3\build\temp\PYZ-00.pyz completed successfully.
77143 INFO: checking PKG
77143 INFO: Building PKG because PKG-00.toc is non existent
77143 INFO: Building PKG (CArchive) PKG-00.pkg
207908 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
218323 INFO: Bootloader c:\users\User1\anaconda3\lib\site-packages\PyInstaller\bootloader\Windows-64bit\runw.exe
218323 INFO: checking EXE
218324 INFO: Building EXE because EXE-00.toc is non existent
218324 INFO: Building EXE from EXE-00.toc
218353 INFO: Appending archive to EXE C:\Users\User1\.spyder-py3\dist\temp.exe
218611 INFO: Building EXE from EXE-00.toc completed successfully.

WORKAROUND : copy Math from Cryptodome folder to Crypto folder, no error anymore...

truduk
  • 21
  • 1
  • 4
  • Did you check all this solutions? https://stackoverflow.com/questions/19623267/importerror-no-module-named-crypto-cipher – PySeeker Aug 29 '19 at 16:33
  • Thanks but no, the answer is not complete : look at the last comment "This answer does not explain everything, where are you getting app.yaml file?". I would ask the same question, I have not all these files. – truduk Aug 29 '19 at 17:03

3 Answers3

3

There are conflicts in Windows because the system is case-insensitive. You can check the official explanation from the FAQ in pycryptodome.

The suggestion is to uninstall and reinstall:

pip uninstall crypto
pip uninstall pycryptodome
pip install pycryptodome

With Conda, this worked for me:

conda install pycryptodome
conda uninstall crypto
conda install pyinstaller
Ilya Orson
  • 148
  • 1
  • 8
0

sometimes they failed to hook the modules from the virtual environments.Now this time try without Virtualenv and install all modules in C: drive then use your command like,

pyinstaller -F -w myapp.py

Mathan
  • 367
  • 3
  • 12
  • "Now this time try without Virtualenv" what do you mean by that – truduk Aug 30 '19 at 12:25
  • That means install the requirements directly in the "C:\Users\Admin>" directory . if using Ubuntu then install in ROOT user – Mathan Sep 03 '19 at 05:09
0

To solve this error first install Build Tools on your computer if you are using Windows from https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16.

Then update the setuptools o Python pip install --upgrade setuptools

Lastly go and install PyCrypto package with pip.

Use pycrypto pip package to install module. pip install pycrypto

This should solve your issue.

projjal
  • 100
  • 6