私が使用したいライブラリのサポートが不足しているため、私はいくつかのPython開発をWindowsからLinux開発に移しました。私は一日のうちに依存関係のないところにいらっしゃることを迷惑にしていました。どのようにLinux/Pythonの依存関係に対処するには?
質問
私は、Linuxを拾うたびに、私は通常、彼らは、apt-getをeasy_installをまたはPIPを介してインストールしているかどうかを、通常、開発ライブラリと、依存関係の問題のいくつかの種類に実行します。私はシンプルな作業でなければならないことを何日も無駄にして、コードを書くよりもライブラリを稼働させるのに長い時間を費やしています。 前に同じ問題を抱えている人のために無駄にグーグルグーグルではなく、これらの種類の問題に対処するための戦略については、どこで知ることができますか?
例
ほんの一例:私はいくつかのQRコードを生成したかったです。だから、pyqrcode.sourceforge.netに基づいていますが、Javaの依存関係がないと思われるgithub.com/bitly/pyqrencodeを使用すると思いました。他にも(pyqrnative、github.com/Arachnid/pyqrencode)がありますが、私のニーズに最も適したもののようです。
だから、私はpypi上のパッケージを発見し、それが人生を容易にするだろう使用して考えた:(私はおそらくきちんと整頓物事を保つためにvirtualenvのを使って、自分の生活をより困難にしました)
(myenv3)[email protected]:~/myenv3$ bin/pip install pyqrencode
Downloading/unpacking pyqrencode
Downloading pyqrencode-0.2.tar.gz
Running setup.py egg_info for package pyqrencode
Installing collected packages: pyqrencode
Running setup.py install for pyqrencode
building 'qrencode' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c qrencode.c -o build/temp.linux-i686-2.7/qrencode.o
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions build/temp.linux-i686-2.7/qrencode.o -lqrencode -o build/lib.linux-i686-2.7/qrencode.so
Successfully installed pyqrencode
Cleaning up...
(。私もその前にいくつかの時点で、私はおそらくsudo apt-get install libqrencode-dev
推測)
だから、私は、テストスクリプトを実行しようとした:
(myenv3)[email protected]:~/myenv3$ python test_qr.py
Traceback (most recent call last):
File "test_qr.py", line 1, in <module>
from qrencode import Encoder
File "qrencode.pyx", line 1, in init qrencode (qrencode.c:1520)
ImportError: No module named ImageOps
:(
まあ、investigationsはImageOpsはうーん、PILのは、インストール
(myenv3)[email protected]:~/myenv3$ pip install pil
Downloading/unpacking pil
Downloading PIL-1.1.7.tar.gz (506Kb): 122Kb downloaded
Operation cancelled by user
Storing complete log in /home/mat/.pip/pip.log
(myenv3)[email protected]:~/myenv3$ bin/pip install pil
Downloading/unpacking pil
Downloading PIL-1.1.7.tar.gz (506Kb): 506Kb downloaded
Running setup.py egg_info for package pil
WARNING: '' not a valid package name; please use only.-separated package names in setup.py
Installing collected packages: pil
Running setup.py install for pil
WARNING: '' not a valid package name; please use only.-separated package names in setup.py
building '_imaging' extension
gcc ...
building '_imagingmath' extension
gcc ...
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
*** JPEG support not available
*** ZLIB (PNG/ZIP) support not available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
To check the build, run the selftest.py script.
...
Successfully installed pil
Cleaning up...
... PILの一部であるように見えるが、私は以前sudo apt-get install libjpeg62 libjpeg62-dev libpng12-dev zlib1g zlib1g-dev
にインストールされたライブラリをピックアップしていないことを明らかにしました。私はpipにライブラリの場所をsetup.pyに送るようにpipに指示する方法がわかりません。グーグルでは、私が試した様々なideasを提案していますが、誰も私をサークルの周りに送ってくれること以外には何も役立たないようです。
Ubuntu 11.04: Installing PIL into a virtualenv with PIPではなくpillowパッケージを使用して提案し、その者はそれを試してみましょう:
(myenv3)[email protected]:~/myenv3$ pip install pillow
Downloading/unpacking pillow
Downloading Pillow-1.7.5.zip (637Kb): 637Kb downloaded
Running setup.py egg_info for package pillow
...
Installing collected packages: pillow
Running setup.py install for pillow
building '_imaging' extension
gcc ...
--------------------------------------------------------------------
SETUP SUMMARY (Pillow 1.7.5/PIL 1.1.7)
--------------------------------------------------------------------
version 1.7.5
platform linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
To check the build, run the selftest.py script.
...
Successfully installed pillow
Cleaning up...
まあ、我々はイェーイ、JPEGやPNGは、この時間をサポート持っているようです!
(myenv3)[email protected]:~/myenv3$ python test_qr.py
Traceback (most recent call last):
File "test_qr.py", line 1, in <module>
from qrencode import Encoder
File "qrencode.pyx", line 1, in init qrencode (qrencode.c:1520)
ImportError: No module named ImageOps
まだ画像がありません。今私は困惑している、ImageOpsが枕から欠落している、またはそれはpilと一緒にそこにあった別の問題です。
apt-get install python-imaging – jterrace
@jerrace既に持っていますが、それはvirtualenvによって無効にされます--no-site-packages – Mat
これはPILがインストール可能な2つの方法PIL名前空間内で、または個別のパッケージとして実行できます。 'pyqrencode'は' import ImageOps'または 'import PIL.ImageOps'を使っていますか?それを切り替えて再構築してみてください。 – agf