无法在OpenShift中从GitHub安装Python模块

时间:2013-04-05 18:37:20

标签: git github pip openshift paas

尝试将Python应用程序部署到OpenShift中,BTW是我的第一个OpenShift部署。一切正常,但安装了一个在GitHub上托管的模块。我一直在尝试很多方法。有人可以帮我吗?提前谢谢了。看起来OpenShift Git版本(1.7.1)与我想要达到的目标不兼容。这是错误输出:

    Obtaining django-filter from git+https://github.com/jpardobl/django-filter.git@8a3d092a99feaacea6b85c5ae5a987dc9ea970ab#egg=django_filter-dev (from -r /var/lib/openshift/515ebbc650044643fa00000d/app-root/repo/requirements.txt (line 1))
remote:   Found command 'git' at '/usr/bin/git'
remote: Command /usr/bin/git config remote.origin.url failed with error code 1
remote: Exception information:
remote: Traceback (most recent call last):
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/basecommand.py", line 126, in main
remote:     self.run(options, args)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/commands/install.py", line 223, in run
remote:     requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/req.py", line 936, in prepare_files
remote:     req_to_install.update_editable(not self.is_download)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/req.py", line 384, in update_editable
remote:     vcs_backend.obtain(self.source_dir)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/vcs/git.py", line 104, in obtain
remote:     if self.check_destination(dest, url, rev_options, rev_display):
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/vcs/__init__.py", line 183, in check_destination
remote:     existing_url = self.get_url(dest)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/vcs/git.py", line 116, in get_url
remote:     show_stdout=False, cwd=location)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/__init__.py", line 255, in call_subprocess
remote:     % (command_desc, proc.returncode))
remote: InstallationError: Command /usr/bin/git config remote.origin.url failed with error code 1
remote: 
remote: Storing complete log in /var/lib/openshift/515ebbc650044643fa00000d/.pip/pip.log
remote: Traceback (most recent call last):
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/bin/pip", line 9, in <module>
remote:     load_entry_point('pip==1.0.2', 'console_scripts', 'pip')()
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/__init__.py", line 116, in main
remote:     return command.main(initial_args, args[1:], options)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/basecommand.py", line 151, in main
remote:     log_fp = open_logfile(log_fn, 'w')
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/basecommand.py", line 177, in open_logfile
remote:     os.makedirs(dirname)
remote:   File "/usr/lib64/python2.6/os.py", line 157, in makedirs
remote:     mkdir(name, mode)
remote: OSError: [Errno 13] Permission denied: '/var/lib/openshift/515ebbc650044643fa00000d/.pip'
remote: Running .openshift/action_hooks/build
remote: Obtaining django-filter from git+https://github.com/jpardobl/django-filter.git@8a3d092a99feaacea6b85c5ae5a987dc9ea970ab#egg=django_filter-dev (from -r /var/lib/openshift/515ebbc650044643fa00000d/app-root/repo/requirements.txt (line 1))
remote:   Found command 'git' at '/usr/bin/git'
remote: Command /usr/bin/git config remote.origin.url failed with error code 1
remote: Exception information:
remote: Traceback (most recent call last):
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/basecommand.py", line 126, in main
remote:     self.run(options, args)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/commands/install.py", line 223, in run
remote:     requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/req.py", line 936, in prepare_files
remote:     req_to_install.update_editable(not self.is_download)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/req.py", line 384, in update_editable
remote:     vcs_backend.obtain(self.source_dir)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/vcs/git.py", line 104, in obtain
remote:     if self.check_destination(dest, url, rev_options, rev_display):
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/vcs/__init__.py", line 183, in check_destination
remote:     existing_url = self.get_url(dest)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/vcs/git.py", line 116, in get_url
remote:     show_stdout=False, cwd=location)
remote:   File "/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg/pip/__init__.py", line 255, in call_subprocess
remote:     % (command_desc, proc.returncode))
remote: InstallationError: Command /usr/bin/git config remote.origin.url failed with error code 1

关注我的setup.py文件

 from setuptools import setup

    setup(name='nautivel', 
version='0.8.1', 
description='OpenShift App', 
author='Javier Pardo Blasco', 
author_email='xxxxxxx', 
url='http://jpardobl.com', 
install_requires=( 
'Django == 1.5', 
'argparse == 1.2.1', 
'distribute == 0.6.24', 
'moment == 0.0.15', ), )

还有我的requirements.txt文件

-e git+https://github.com/jpardobl/django-filter.git@8a3d092a99feaacea6b85c5ae5a987dc9ea970ab#egg=django_filter-dev

最后是.openshift / action_hooks / build文件(尝试时不使用env变量来减少错误风险)

    !/bin/bash
    source /var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/bin/activate 
/var/lib/openshift/515ebbc650044643fa00000d/python-2.6/virtenv/bin/pip install -v -r /var/lib/openshift/515ebbc650044643fa00000d/app-root/repo/requirements.txt

1 个答案:

答案 0 :(得分:1)

我没有使用setup.py来安装,而是使用了一种解决方法。我从构建操作挂钩安装模块,如下所示。

# .openshift/action_hooks/build


#!/bin/bash
MESSAGES_PATH=$HOME/python-2.6/virtenv/lib/python2.6/site-packages/django-messages-patch-src
git clone git://github.com/jpardobl/django-messages-patched.git $MESSAGES_PATH
ln -s $MESSAGES_PATH/django_messages $HOME/python-2.6/virtenv/lib/python2.6/site-packages/messages

就是这样!!!