FreeBSD 7.3、Pythonバージョン2.6.2のvirtualenvでpipを使用してpysqliteをインストールしようとしています。 Django、PILなどの他のパッケージをインストールすることに問題はありませんでした。これらのパッケージはすべてvirtualenvを有効にした後に私がインストールしました。しかし、大きなエラーが発生しますpip install sqlite
。これは間違った尾です。
src/module.c:426: warning: implicit declaration of function 'sqlite3_libversion'
src/module.c:426: warning: passing argument 1 of 'PyString_FromString' makes pointer from integer without a cast
error: command 'gcc' failed with exit status 1
Command /usr/home/myuser/python-sites/virtpython/bin/python -c "import setuptools;__file__='/usr/home/myuser/python-sites/virtpython/build/pysqlite/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /usr/tmp/pip-N3U6Px-record/install-record.txt --single-version-externally-managed --install-headers /usr/home/myuser/python-sites/virtpython/include/site/python2.6 failed with error code 1 in /usr/home/myuser/python-sites/virtpython/build/pysqlite
Exception information:
Traceback (most recent call last):
File "/usr/home/myuser/python-sites/virtpython/lib/python2.6/site-packages/pip-1.2.1-py2.6.egg/pip/basecommand.py", line 107, in main
status = self.run(options, args)
File "/usr/home/myuser/python-sites/virtpython/lib/python2.6/site-packages/pip-1.2.1-py2.6.egg/pip/commands/install.py", line 261, in run
requirement_set.install(install_options, global_options)
File "/usr/home/myuser/python-sites/virtpython/lib/python2.6/site-packages/pip-1.2.1-py2.6.egg/pip/req.py", line 1166, in install
requirement.install(install_options, global_options)
File "/usr/home/myuser/python-sites/virtpython/lib/python2.6/site-packages/pip-1.2.1-py2.6.egg/pip/req.py", line 589, in install
cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False)
File "/usr/home/myuser/python-sites/virtpython/lib/python2.6/site-packages/pip-1.2.1-py2.6.egg/pip/util.py", line 612, in call_subprocess
% (command_desc, proc.returncode, cwd))
InstallationError: Command /usr/home/myuser/python-sites/virtpython/bin/python -c "import setuptools;__file__='/usr/home/myuser/python-sites/virtpython/build/pysqlite/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /usr/tmp/pip-N3U6Px-record/install-record.txt --single-version-externally-managed --install-headers /usr/home/myuser/python-sites/virtpython/include/site/python2.6 failed with error code 1 in /usr/home/myuser/python-sites/virtpython/build/pysqlite
'virtpython'は私のvirtualenvです
% pkg_info | grep sqlite
sqlite-2.8.17_1 An SQL database engine in a C library
sqlite3-3.6.11 An SQL database engine in a C library
FreeBSD sqlite開発パッケージがある場合、どこで見つけることができますか?それとも別の問題があるのでしょうか? ?
答え1
同様の問題があり、私が見つけた唯一の解決策は、pipビルドディレクトリ(/tmp/pip-{random hash})に移動することでした。通常、エラーの最後にある /usr/tmp/ または pysqlite という名前を使用します。設定で)pysqlite setup.cfgを変更してください。ダウンロードすると、次のように表示されます。
[build_ext]
#define=
#include_dirs=/usr/local/include
#library_dirs=/usr/local/lib
libraries=sqlite3
define=SQLITE_OMIT_LOAD_EXTENSION
include_dirs と library_dirs のコメントを削除すると、pysqlite が正しくインストールされます。欠点は、この手順を簡単に自動化する方法が見つからなかったため、各virtualenvを設定するときにこれを行う必要があることです。醜い、不愉快で痛いですが、pysqliteをインストールします。
お役に立てば幸いです。
PS virtualenvでpip installを実行しようとすると、ダウンロードしたファイルは{virtualenv}/build/pysqliteにあります。
答え2
Debian wheezyのvirtualenvにpysqliteをインストールしようとしたときに同様の問題が発生しました。
次の記事を見つけました。
libsqlite3
pysqliteをvirtualenvにインストールするには、Debianにdevバージョンをインストールする必要があるかもしれません。
sudo apt-get install libsqlite3-dev
私はこれを試してみましたが、突然pysqliteが私のvirtualenvにうまくインストールされました。
答え3
これがあなたの質問に対する答えであるかどうかわかりません。これがまさに私が試してみたかったのです。
次のようにバージョンを指定して、以前のバージョンのsqliteをインストールしてみてください。
pip install sqlite==2.7
努力するtarballからsqliteをビルドします。システム設定に問題がないか確認してください。もしそうなら。
pip
pip
答え4
これだけで十分です。まず、sqliteをローカルコンピュータ(仮想マシンではない)にダウンロードしてコンパイルします。 sudo pip install sqlite
これは冷笑的に行われるべきです。次に、次を追加します。~/.pydistutils.cfg
## Exclusively here to allow pysqlite to compile in a venv.
[build_ext]
include_dirs=/usr/local/include
library_dirs=/usr/local/lib
venv内のpipは/usr/local/libのpysqliteをコンパイルします。これ可能分離の中断 - pysqliteはvenvの外部のライブラリに依存します。これがあなたを悩ませているなら、最善の選択は刑務所またはLXCです。