【问题标题】:Getting a PasteScript error when I try to serve an existing Pylons app当我尝试为现有 Pylons 应用程序提供服务时出现 PasteScript 错误
【发布时间】:2011-05-11 02:19:49
【问题描述】:

我正在尝试在 OS X Snow Leopard 上提供现有的 Python 2.5 Pylons 应用程序。

我已经安装了 Python 2.5 并将其设置为默认 Python 安装,安装了 paste,并安装了应用程序所需的 Pylons 版本(0.9.6.1)以及其他鸡蛋......但是当我 cd 到主文件夹并执行“paster serve development.ini”我得到以下信息:

File "/usr/local/bin/paster", line 5, in <module>
    from pkg_resources import load_entry_point

File "/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/pkg_resources.py", line 2603, in <module>

File "/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/pkg_resources.py", line 666, in require

File "/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/pkg_resources.py", line 565, in resolve

pkg_resources.DistributionNotFound: PasteScript==1.7.3

我确实已经完成了“easy_install PasteScript==1.7.3”,但我仍然收到此错误。有什么很明显的我想念的吗?帮助?

提前致谢。

【问题讨论】:

  • 您是将所有内容都安装到 virtualenv 还是系统中?
  • 我正在使用系统。我使用“defaults write com.apple.versioner.python Version 2.5”将 Python 2.5 设置为 Snow Leopard 的默认值(预装的 2.6 除外)

标签: python osx-snow-leopard pylons paste paster


【解决方案1】:

您的系统上可能安装了多个 Python。 easy_install 命令可能会将 PasteScript 安装到不同的 Python 解释器中。您可能有一个特定的 easy_install-2.5 命令,您应该将其用于 Python 2.5 解释器。

但是,强烈建议在您的开发系统上使用 virtualenv。

Virtualenv 允许您创建一个绑定到特定 Python 解释器的沙箱,并且您可以在其中根据每个项目在本地安装特定的包版本。

有关在此处使用带有 Pylons 的 virtualenv 的更多信息: http://wiki.pylonshq.com/display/pylonscookbook/Using+a+Virtualenv+Sandbox

【讨论】:

    【解决方案2】:

    也许这是一个太简单的答案,但我会尝试安装到特定版本easy_install-2.5 PasteScript==1.7.3 详情请参阅Easy install docs

    【讨论】:

      【解决方案3】:

      编辑/usr/sbin/luci中的第一行,然后将python的版本添加到以下行:

      #!/usr/bin/python -Es
      

      编辑/usr/bin/paster中的第一行,然后将python的版本添加到以下行:

      #!/usr/bin/python
      

      【讨论】:

        【解决方案4】:

        即使我执行了“paster --help”,我也收到了这个错误。 PasteScript 在我的 virtual-env 的站点包中,PasteScript 出现在 pip freeze 中。问题是 PasteScript 文件夹以 .dist-info 结尾。安装了另一个名为distribute 的egg,它位于我的sys.path 的前面。它有一个旧版本的 pkg_resources,它不知道“.dist-info”鸡蛋文件夹。有问题的 pkg_resources 逻辑在函数 find_on_path 中。您可以在 pkg_resources 中搜索“dist-info”。因此 paste/script/command.py 中的“pkg_resources.get_distribution('PasteScript')”即使已安装也没有发现 PasteScript。要查找正在使用的 pkg_resources,您可以运行 python 并执行“import pkg_resources; print pkg_resources”。卸载“分发”修复了我当前的错误(但后来我遇到了另一个错误)。

        更新:我在 Ubuntu 精确(v12,有点旧,于 2012-2014 年发布)上安装了最新的 ckan 2.6.2(2017 年 4 月)(完全更新了 apt-get update,通过 vagrant image ubuntu/ 安装精确64)。它被打破。使用图像 ubuntu/trusty64 效果很好。

        【讨论】:

        • 在 CKAN 的上下文中,修复可能是:pip install --upgrade Distribute --user (github.com/kevin1024/vcrpy/issues/178)。通过删除分发,我也取得了很大进展,但后来确实遇到了另一个问题,可能相关也可能不相关。
        猜你喜欢
        • 2017-03-22
        • 1970-01-01
        • 2015-05-05
        • 1970-01-01
        • 1970-01-01
        • 2020-09-25
        • 1970-01-01
        • 2015-04-16
        • 2011-06-16
        相关资源
        最近更新 更多