アプリケーションのインストーラー用にpythonパッケージを固めてみます。
一度固めてしまえば、固めたものからインストールできるようになるので、
たとえばオフライン環境でも、pythonパッケージをインストールすることができます。
#インストール済みのパッケージをリスト化
pip freeze > packages.txt
#これにgit から直接pip installしている、下記をpackages.txtに追記
git+git://github.com/toastdriven/django-haystack.git@4e77504f6dad61fd9f2bed427eabdd3f8c0dfa8d#egg=django-haystack
#パッケージを固める(バンドル)
pip bundle -r packages.txt packages.pybundle
実行してみたところ、
下記の様なエラーが出てうまくいきません。
Putting temporary build files in /Users/hoge/.virtualenvs/mw_python/build-bundle4 and source/develop files in /Users/hoge/.virtualenvs/mw_python/src-bundle Downloading/unpacking django-haystack from git+git://github.com/toastdriven/django-haystack.git@4e77504f6dad61fd9f2bed427eabdd3f8c0dfa8d (from -r base.txt (line 10)) Cloning git://github.com/toastdriven/django-haystack.git (to 4e77504f6dad61fd9f2bed427eabdd3f8c0dfa8d) to /Users/hoge/.virtualenvs/mw_python/build-bundle4/django-haystack Could not find a tag or branch '4e77504f6dad61fd9f2bed427eabdd3f8c0dfa8d', assuming commit. Running setup.py egg_info for package django-haystack Running setup.py egg_info for package django-haystack Exception: Traceback (most recent call last): File "/Users/hoge/.virtualenvs/mw_python/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg/pip/basecommand.py", line 126, in main self.run(options, args) File "/Users/hoge/.virtualenvs/mw_python/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg/pip/commands/bundle.py", line 29, in run requirement_set = super(BundleCommand, self).run(options, args) File "/Users/hoge/.virtualenvs/mw_python/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg/pip/commands/install.py", line 223, in run requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) File "/Users/hoge/.virtualenvs/mw_python/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg/pip/req.py", line 994, in prepare_files self.copy_to_build_dir(req_to_install) File "/Users/hoge/.virtualenvs/mw_python/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg/pip/req.py", line 1065, in copy_to_build_dir copytree(req_to_install.source_dir, dest) File "/Users/hoge/.virtualenvs/mw_python/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg/pip/backwardcompat.py", line 104, in copytree shutil.copytree(src, dst) File "/Users/hoge/.pythonbrew/pythons/Python-2.7.2/lib/python2.7/shutil.py", line 174, in copytree os.makedirs(dst) File "/Users/hoge/.virtualenvs/mw_python/lib/python2.7/os.py", line 157, in makedirs mkdir(name, mode) OSError: [Errno 17] File exists: '/Users/hoge/.virtualenvs/mw_python/build-bundle/django-haystack' Storing complete log in /Users/hoge/.pip/pip.log
調べてみるとどうやらeggのモジュールは固められない模様
gitから直接pip install しているhaystackを pip freezeすると
django-haystack==2.0.0-alpha
として入っていますが、試しに、2.0.0、2.0.0-alpha、2.0.0-betaで
packages.txt内で指定しても、そんなバージョン無いよと言われてはやはりはいりませんでした。。
最終的には、
別途git cloneしてきたものを、個別に固める(バンドル)ことにしました。
#git でcloneする。
git clone https://github.com/toastdriven/django-haystack.git
#cloneしたディレクトリに移動
cd django-haystack
#採用するリビジョンに切り替える。
git checkout 4e77504f6dad61fd9f2bed427eabdd3f8c0dfa8d
#個別に固める
cd ../ pip bundle haystack.pybundle -e django-haystack
■参考にさせて頂いたサイト
http://d.hatena.ne.jp/rudi/20110107/1294409385
ロゴスウェア
最新記事 by ロゴスウェア (全て見る)
- Amazon Linux(EC2)と PHPSTORM で Xdebug を行う - 2018年9月26日
- やらないことの合意 - 2018年6月27日
- 卒園アルバムとプロジェクトマネジメント - 2018年3月30日
Comments are closed.