Saturday 15 September 2012

virtualenved python cannot import built-in sqlite3 -



virtualenved python cannot import built-in sqlite3 -

my os linuxmint 17 (essentially ubuntu 14.04 trusty), has pre-installed python 2.7.6, when do:

$ python -v >>> import _sqlite3 >>> # dynamically loaded /usr/lib/python2.7/lib-dynload/_sqlite3.x86_64-linux-gnu.so

on other side per project need, compiled python 2.7.8 source, created virtualenv using command below:

virtualenv ~/.venv-python2.7.8/my_project/ -p ~/.localpython-2.7.8/bin/python2.7 --system-site-packages

so isolated python/pip/django environment, sure below:

(my_project)wayne@wayne-linuxmint17 ~/projects/adsk_devportal $ python /home/wayne/.venv-python2.7.8/my_project/bin/python (my_project)wayne@wayne-linuxmint17 ~/projects/adsk_devportal $ python --version python 2.7.8

however, under virtualised env, i cannot import python built-in sqlite3:

$ python -v

>>> import sqlite3 import sqlite3 # directory /home/wayne/.localpython-2.7.8/lib/python2.7/sqlite3 # /home/wayne/.localpython-2.7.8/lib/python2.7/sqlite3/__init__.pyc matches /home/wayne/.localpython-2.7.8/lib/python2.7/sqlite3/__init__.py import sqlite3 # precompiled /home/wayne/.localpython-2.7.8/lib/python2.7/sqlite3/__init__.pyc # /home/wayne/.localpython-2.7.8/lib/python2.7/sqlite3/dbapi2.pyc matches /home/wayne/.localpython-2.7.8/lib/python2.7/sqlite3/dbapi2.py import sqlite3.dbapi2 # precompiled /home/wayne/.localpython-2.7.8/lib/python2.7/sqlite3/dbapi2.pyc # /home/wayne/.localpython-2.7.8/lib/python2.7/collections.pyc matches /home/wayne/.localpython-2.7.8/lib/python2.7/collections.py import collections # precompiled /home/wayne/.localpython-2.7.8/lib/python2.7/collections.pyc dlopen("/home/wayne/.venv-python2.7.8/my_project/lib/python2.7/lib-dynload/_collections.so", 2); import _collections # dynamically loaded /home/wayne/.venv-python2.7.8/my_project/lib/python2.7/lib-dynload/_collections.so dlopen("/home/wayne/.venv-python2.7.8/my_project/lib/python2.7/lib-dynload/operator.so", 2); import operator # dynamically loaded /home/wayne/.venv-python2.7.8/my_project/lib/python2.7/lib-dynload/operator.so # /home/wayne/.localpython-2.7.8/lib/python2.7/keyword.pyc matches /home/wayne/.localpython-2.7.8/lib/python2.7/keyword.py import keyword # precompiled /home/wayne/.localpython-2.7.8/lib/python2.7/keyword.pyc # /home/wayne/.localpython-2.7.8/lib/python2.7/heapq.pyc matches /home/wayne/.localpython-2.7.8/lib/python2.7/heapq.py import heapq # precompiled /home/wayne/.localpython-2.7.8/lib/python2.7/heapq.pyc dlopen("/home/wayne/.venv-python2.7.8/my_project/lib/python2.7/lib-dynload/itertools.so", 2); import itertools # dynamically loaded /home/wayne/.venv-python2.7.8/my_project/lib/python2.7/lib-dynload/itertools.so dlopen("/home/wayne/.venv-python2.7.8/my_project/lib/python2.7/lib-dynload/_heapq.so", 2); import _heapq # dynamically loaded /home/wayne/.venv-python2.7.8/my_project/lib/python2.7/lib-dynload/_heapq.so import thread # builtin dlopen("/home/wayne/.venv-python2.7.8/my_project/lib/python2.7/lib-dynload/datetime.so", 2); import datetime # dynamically loaded /home/wayne/.venv-python2.7.8/my_project/lib/python2.7/lib-dynload/datetime.so dlopen("/home/wayne/.venv-python2.7.8/my_project/lib/python2.7/lib-dynload/time.so", 2); import time # dynamically loaded /home/wayne/.venv-python2.7.8/my_project/lib/python2.7/lib-dynload/time.so traceback (most recent phone call last): file "<stdin>", line 1, in <module> file "/home/wayne/.localpython-2.7.8/lib/python2.7/sqlite3/__init__.py", line 24, in <module> dbapi2 import * file "/home/wayne/.localpython-2.7.8/lib/python2.7/sqlite3/dbapi2.py", line 28, in <module> _sqlite3 import * importerror: no module named _sqlite3

may know what root cause of this? easiest way solve issue?

thanks lot suggestions!

hmmm,

this link might help https://github.com/nixos/nixpkgs/issues/492#issuecomment-40740803

not sure if might prepare problem changing virtualenv

diff --git a/virtualenv.py b/virtualenv.py index 0f5ae79..cfd19bd 100755 --- a/virtualenv.py +++ b/virtualenv.py @@ -1191,6 +1191,11 @@ def install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages, clear, sy site_filename_dst = change_prefix(site_filename, home_dir) site_dir = os.path.dirname(site_filename_dst) writefile(site_filename_dst, site_py) + wrapper_path = join(prefix, "lib", py_version, "site-packages") + writefile( + join(site_dir, 'sitecustomize.py',), + "import sys; sys.path.append('%s')" % wrapper_path + ) writefile(join(site_dir, 'orig-prefix.txt'), prefix) site_packages_filename = join(site_dir, 'no-global-site-packages.txt') if not site_packages:

python sqlite3 virtualenv

No comments:

Post a Comment