1

尝试将 Python 应用程序部署到 OpenShift 中,顺便说一句,这是我的第一个 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 文件(它没有使用环境变量来减少尝试时的错误风险)

    !/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
4

1 回答 1

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

就是这样!!!

于 2013-04-10T07:41:41.880 回答