Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cx_Freeze 6 has problems with SQLite #296

Closed
sekrause opened this issue Aug 3, 2017 · 7 comments
Closed

cx_Freeze 6 has problems with SQLite #296

sekrause opened this issue Aug 3, 2017 · 7 comments

Comments

@sekrause
Copy link
Contributor

sekrause commented Aug 3, 2017

When I build a Windows console executable from this very simple test application

import sqlite3
conn = sqlite3.connect(':memory:')

it works fine as long as the current working directory is the application's directory. However, starting this app from any other directory results in the following error:

Traceback (most recent call last):
  File "D:\Temp\freezetest\venv\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
    module.run()
  File "D:\Temp\freezetest\venv\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run
    exec(code, m.__dict__)
  File "app.py", line 1, in <module>
  File "c:\Program Files\Python35\lib\sqlite3\__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "c:\Program Files\Python35\lib\sqlite3\dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: DLL load failed: The specified module could not be found.

The reason seems to be that cx_Freeze copies the sqlite3.dll in the same directory as the python35.dll, not the new lib directory, but _sqlite3.pyd expects the sqlite3.dll in its own directory (which is the lib directory).

@anthony-tuininga
Copy link
Collaborator

Patch supplied. Please let me know if that corrects the issue for you!

@sekrause
Copy link
Contributor Author

sekrause commented Aug 7, 2017

Yes, that fixes the issue.

@karthick1288
Copy link

hello , Can you please elaborate on how to ensure the sqlite3 dll is loaded in the same directory? Thank you very much

@OmarMeriwani
Copy link

Downgrade sqlite3 in Anaconda, as it was the last version I couldn't upgrade it, and no option for install or uninstall is available. after the downgrade it worked fine

@mx2048
Copy link

mx2048 commented Jun 12, 2019

Don't forget to update cs_Freeze to install the version with the patch.
pip install --upgrade git+https://github.com/anthony-tuininga/cx_Freeze.git@master

@kurt-rhee
Copy link

I get the following error when attempting to install cx_Freeze using the code snippet above in an anaconda environment

ERROR: Command errored out with exit status 1:
command: 'C:\Users\simon.rhee\AppData\Local\Continuum\anaconda3\envs\geo_env\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\SIMON1.RHE\AppData\Local\Temp\pip-req-build-7sw31sss\setup.py'"'"'; file='"'"'C:\Users\SIMON1.RHE\AppData\Local\Temp\pip-req-build-7sw31sss\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\SIMON1.RHE\AppData\Local\Temp\pip-wheel-w9cj9up7' --python-tag cp37
cwd: C:\Users\SIMON
1.RHE\AppData\Local\Temp\pip-req-build-7sw31sss
Complete output (70 lines):
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.7
creating build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\common.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\dist.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\finder.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\freezer.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\hooks.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\macdist.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\main.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\setupwriter.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\windist.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze_init_.py -> build\lib.win-amd64-3.7\cx_Freeze
creating build\lib.win-amd64-3.7\cx_Freeze\initscripts
copying cx_Freeze\initscripts\Console.py -> build\lib.win-amd64-3.7\cx_Freeze\initscripts
copying cx_Freeze\initscripts\ConsoleSetLibPath.py -> build\lib.win-amd64-3.7\cx_Freeze\initscripts
copying cx_Freeze\initscripts\SharedLib.py -> build\lib.win-amd64-3.7\cx_Freeze\initscripts
copying cx_Freeze\initscripts\SharedLibSource.py -> build\lib.win-amd64-3.7\cx_Freeze\initscripts
copying cx_Freeze\initscripts_startup_.py -> build\lib.win-amd64-3.7\cx_Freeze\initscripts
creating build\lib.win-amd64-3.7\cx_Freeze\samples
creating build\lib.win-amd64-3.7\cx_Freeze\samples\advanced
copying cx_Freeze\samples\advanced\advanced_1.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\advanced
copying cx_Freeze\samples\advanced\advanced_2.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\advanced
copying cx_Freeze\samples\advanced\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\advanced
creating build\lib.win-amd64-3.7\cx_Freeze\samples\asmodule
copying cx_Freeze\samples\asmodule\asmodule.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\asmodule
copying cx_Freeze\samples\asmodule\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\asmodule
creating build\lib.win-amd64-3.7\cx_Freeze\samples\importlib
copying cx_Freeze\samples\importlib\get_examples.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\importlib
copying cx_Freeze\samples\importlib\server_simple.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\importlib
copying cx_Freeze\samples\importlib\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\importlib
copying cx_Freeze\samples\importlib\web_srv.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\importlib
copying cx_Freeze\samples\importlib\wsgiserver.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\importlib
creating build\lib.win-amd64-3.7\cx_Freeze\samples\matplotlib
copying cx_Freeze\samples\matplotlib\matplotlib_eg.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\matplotlib
copying cx_Freeze\samples\matplotlib\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\matplotlib
creating build\lib.win-amd64-3.7\cx_Freeze\samples\openpyxl
copying cx_Freeze\samples\openpyxl\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\openpyxl
copying cx_Freeze\samples\openpyxl\test_openpyxl.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\openpyxl
creating build\lib.win-amd64-3.7\cx_Freeze\samples\PyQt4
copying cx_Freeze\samples\PyQt4\PyQt4app.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\PyQt4
copying cx_Freeze\samples\PyQt4\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\PyQt4
creating build\lib.win-amd64-3.7\cx_Freeze\samples\PyQt5
copying cx_Freeze\samples\PyQt5\PyQt5app.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\PyQt5
copying cx_Freeze\samples\PyQt5\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\PyQt5
creating build\lib.win-amd64-3.7\cx_Freeze\samples\relimport
copying cx_Freeze\samples\relimport\relimport.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\relimport
copying cx_Freeze\samples\relimport\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\relimport
creating build\lib.win-amd64-3.7\cx_Freeze\samples\service
copying cx_Freeze\samples\service\Config.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\service
copying cx_Freeze\samples\service\ServiceHandler.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\service
copying cx_Freeze\samples\service\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\service
creating build\lib.win-amd64-3.7\cx_Freeze\samples\simple
copying cx_Freeze\samples\simple\hello.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\simple
copying cx_Freeze\samples\simple\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\simple
creating build\lib.win-amd64-3.7\cx_Freeze\samples\Tkinter
copying cx_Freeze\samples\Tkinter\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\Tkinter
copying cx_Freeze\samples\Tkinter\SimpleTkApp.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\Tkinter
creating build\lib.win-amd64-3.7\cx_Freeze\samples\wx
copying cx_Freeze\samples\wx\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\wx
copying cx_Freeze\samples\wx\wxapp.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\wx
creating build\lib.win-amd64-3.7\cx_Freeze\samples\zope
copying cx_Freeze\samples\zope\qotd.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\zope
copying cx_Freeze\samples\zope\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\zope
running build_ext
building 'cx_Freeze.util' extension
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/

ERROR: Failed building wheel for cx-Freeze
Running setup.py clean for cx-Freeze
Failed to build cx-Freeze
Installing collected packages: cx-Freeze
Running setup.py install for cx-Freeze ... error
ERROR: Command errored out with exit status 1:
command: 'C:\Users\simon.rhee\AppData\Local\Continuum\anaconda3\envs\geo_env\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\SIMON1.RHE\AppData\Local\Temp\pip-req-build-7sw31sss\setup.py'"'"'; file='"'"'C:\Users\SIMON1.RHE\AppData\Local\Temp\pip-req-build-7sw31sss\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\SIMON1.RHE\AppData\Local\Temp\pip-record-if82gpf4\install-record.txt' --single-version-externally-managed --compile
cwd: C:\Users\SIMON
1.RHE\AppData\Local\Temp\pip-req-build-7sw31sss
Complete output (70 lines):
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.7
creating build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\common.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\dist.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\finder.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\freezer.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\hooks.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\macdist.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\main.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\setupwriter.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze\windist.py -> build\lib.win-amd64-3.7\cx_Freeze
copying cx_Freeze_init_.py -> build\lib.win-amd64-3.7\cx_Freeze
creating build\lib.win-amd64-3.7\cx_Freeze\initscripts
copying cx_Freeze\initscripts\Console.py -> build\lib.win-amd64-3.7\cx_Freeze\initscripts
copying cx_Freeze\initscripts\ConsoleSetLibPath.py -> build\lib.win-amd64-3.7\cx_Freeze\initscripts
copying cx_Freeze\initscripts\SharedLib.py -> build\lib.win-amd64-3.7\cx_Freeze\initscripts
copying cx_Freeze\initscripts\SharedLibSource.py -> build\lib.win-amd64-3.7\cx_Freeze\initscripts
copying cx_Freeze\initscripts_startup_.py -> build\lib.win-amd64-3.7\cx_Freeze\initscripts
creating build\lib.win-amd64-3.7\cx_Freeze\samples
creating build\lib.win-amd64-3.7\cx_Freeze\samples\advanced
copying cx_Freeze\samples\advanced\advanced_1.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\advanced
copying cx_Freeze\samples\advanced\advanced_2.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\advanced
copying cx_Freeze\samples\advanced\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\advanced
creating build\lib.win-amd64-3.7\cx_Freeze\samples\asmodule
copying cx_Freeze\samples\asmodule\asmodule.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\asmodule
copying cx_Freeze\samples\asmodule\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\asmodule
creating build\lib.win-amd64-3.7\cx_Freeze\samples\importlib
copying cx_Freeze\samples\importlib\get_examples.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\importlib
copying cx_Freeze\samples\importlib\server_simple.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\importlib
copying cx_Freeze\samples\importlib\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\importlib
copying cx_Freeze\samples\importlib\web_srv.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\importlib
copying cx_Freeze\samples\importlib\wsgiserver.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\importlib
creating build\lib.win-amd64-3.7\cx_Freeze\samples\matplotlib
copying cx_Freeze\samples\matplotlib\matplotlib_eg.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\matplotlib
copying cx_Freeze\samples\matplotlib\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\matplotlib
creating build\lib.win-amd64-3.7\cx_Freeze\samples\openpyxl
copying cx_Freeze\samples\openpyxl\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\openpyxl
copying cx_Freeze\samples\openpyxl\test_openpyxl.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\openpyxl
creating build\lib.win-amd64-3.7\cx_Freeze\samples\PyQt4
copying cx_Freeze\samples\PyQt4\PyQt4app.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\PyQt4
copying cx_Freeze\samples\PyQt4\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\PyQt4
creating build\lib.win-amd64-3.7\cx_Freeze\samples\PyQt5
copying cx_Freeze\samples\PyQt5\PyQt5app.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\PyQt5
copying cx_Freeze\samples\PyQt5\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\PyQt5
creating build\lib.win-amd64-3.7\cx_Freeze\samples\relimport
copying cx_Freeze\samples\relimport\relimport.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\relimport
copying cx_Freeze\samples\relimport\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\relimport
creating build\lib.win-amd64-3.7\cx_Freeze\samples\service
copying cx_Freeze\samples\service\Config.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\service
copying cx_Freeze\samples\service\ServiceHandler.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\service
copying cx_Freeze\samples\service\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\service
creating build\lib.win-amd64-3.7\cx_Freeze\samples\simple
copying cx_Freeze\samples\simple\hello.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\simple
copying cx_Freeze\samples\simple\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\simple
creating build\lib.win-amd64-3.7\cx_Freeze\samples\Tkinter
copying cx_Freeze\samples\Tkinter\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\Tkinter
copying cx_Freeze\samples\Tkinter\SimpleTkApp.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\Tkinter
creating build\lib.win-amd64-3.7\cx_Freeze\samples\wx
copying cx_Freeze\samples\wx\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\wx
copying cx_Freeze\samples\wx\wxapp.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\wx
creating build\lib.win-amd64-3.7\cx_Freeze\samples\zope
copying cx_Freeze\samples\zope\qotd.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\zope
copying cx_Freeze\samples\zope\setup.py -> build\lib.win-amd64-3.7\cx_Freeze\samples\zope
running build_ext
building 'cx_Freeze.util' extension
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
----------------------------------------
ERROR: Command errored out with exit status 1: 'C:\Users\simon.rhee\AppData\Local\Continuum\anaconda3\envs\geo_env\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\SIMON1.RHE\AppData\Local\Temp\pip-req-build-7sw31sss\setup.py'"'"'; file='"'"'C:\Users\SIMON1.RHE\AppData\Local\Temp\pip-req-build-7sw31sss\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\SIMON~1.RHE\AppData\Local\Temp\pip-record-if82gpf4\install-record.txt' --single-version-externally-managed --compile Check the logs for full command outp

@marcelotduarte
Copy link
Owner

This issue is closed. Please open a issue if you have new issues.... but, by the errors, you need a C compiler to build cx_Freeze.
Use the new version instead, using:
pip install cx-freeze

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants