1

BeautifulSoup在 python 平台上运行openshift。我试图在文件BeautifulSoup>=4.0的“ install_requires”部分设置setup.py,但它无法搜索BeautifulSoup 4,而是安装BeautifulSoup 3.2.1,但对于我的项目我需要安装BeautifulSoup >= 4.0。那么如何获取最新的BeautifulSoup安装包呢?

这是我的 setup.py` 文件的外观。

#!/usr/bin/env python

from setuptools import setup

setup(
    name='YourAppName',
    version='1.0',
    description='OpenShift App',
    author='Your Name',
    author_email='example@example.com',
    url='http://www.python.org/sigs/distutils-sig/',
    install_requires=['Django>=1.3', 'BeautifulSoup>=4.0', 'robotexclusionrulesparser',],
)

这是错误的样子:

remote: Installed /var/lib/stickshift/1b1a7d93656c4782a58fab6c6df2d226/python-2.6/virtenv
remote: Processing dependencies for YourAppName==1.0
remote: Searching for BeautifulSoup>=4.0
remote: Reading http://pypi.python.org/simple/BeautifulSoup/
remote: Reading http://www.crummy.com/software/BeautifulSoup/
remote: Reading http://www.crummy.com/software/BeautifulSoup/download/
remote: Reading http://www.crummy.com/software/BeautifulSoup/bs3/
remote: Reading http://www.crummy.com/software/BeautifulSoup/bs3/download/
remote: No local packages or download links found for BeautifulSoup>=4.0
remote: Best match: None
remote: Traceback (most recent call last):
remote:   File "/var/lib/stickshift/1b1a7d93656c4782a58fab6c6df2d226/app-root/runtime/repo/setup.py", line 12, in <module>
remote:     install_requires=['Django>=1.3', 'BeautifulSoup>=4.0', 'robotexclusionrulesparser',],
remote:   File "/usr/lib64/python2.6/distutils/core.py", line 152, in setup
remote:     dist.run_commands()
remote:   File "/usr/lib64/python2.6/distutils/dist.py", line 975, in run_commands
remote:     self.run_command(cmd)
remote:   File "/usr/lib64/python2.6/distutils/dist.py", line 995, in run_command
remote:     cmd_obj.run()
remote:   File "build/bdist.linux-i686/egg/setuptools/command/develop.py", line 27, in run
remote:   File "build/bdist.linux-i686/egg/setuptools/command/develop.py", line 102, in install_for_development
remote:   File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 519, in process_distribution
remote:     
remote:   File "build/bdist.linux-i686/egg/pkg_resources.py", line 563, in resolve
remote:     distributions, errors = working_set.find_plugins(
remote:   File "build/bdist.linux-i686/egg/pkg_resources.py", line 799, in best_match
remote:     
remote:   File "build/bdist.linux-i686/egg/pkg_resources.py", line 811, in obtain
remote:     raise TypeError("Can't add %r to environment" % (other,))
remote:   File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 434, in easy_install
remote:     
remote:   File "build/bdist.linux-i686/egg/setuptools/package_index.py", line 475, in fetch_distribution
remote: AttributeError: 'NoneType' object has no attribute 'clone'

请问有什么帮助吗?

4

1 回答 1

3

根据上游项目的文档,显然需要通过 pip 安装的不同命名约定来引用版本 4.x。

http://www.crummy.com/software/BeautifulSoup/#Download

我设置了一个演示应用程序来测试并将我的 setup.py 设置为包含以下内容:

从 setuptools 导入设置

setup(name='YourAppName',
      version='1.0',
      description='OpenShift App',
      author='Your Name',
      author_email='example@example.com',
      url='http://www.python.org/sigs/distutils-sig/',
      install_requires=['Django>=1.3','beautifulsoup4'],
     )

然后 git commit 和 push 产生了以下代码片段。

remote: Searching for beautifulsoup4
remote: Reading http://pypi.python.org/simple/beautifulsoup4/remote: Reading http://www.crummy.com/software/BeautifulSoup/bs4/
remote: Reading http://www.crummy.com/software/BeautifulSoup/bs4/download/
remote: Best match: beautifulsoup4 4.1.3
remote: Downloading http://www.crummy.com/software/BeautifulSoup/bs4/download/beautifulsoup4-4.1.3.tar.gz
remote: Processing beautifulsoup4-4.1.3.tar.gz
remote: Running beautifulsoup4-4.1.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-JgA5HZ/beautifulsoup4-4.1.3/egg-dist-tmp-1vIJ2i
于 2012-09-10T15:41:25.033 回答