小编orb*_*ion的帖子

如何在Ubuntu Trusty上安全地使用pip(使用SSL)?

问题是,如何在Ubuntu Trusty上使用pip安全地安装软件包?当然,我需要澄清为什么我认为它不安全.

urllib3给出了一个InsecurePlatformWarning如果你在Python 2.7.9之前没有安装一些额外的openssl相关python库的情况下发出https请求.这是一个完善的问答:

InsecurePlatformWarning:真正的SSLContext对象不可用.这可以防止urllib3正确配置SSL

问题是,如果您安装pip版本6左右,它会在您安装任何内容时开始向您发出此警告.从阅读问题的官方答案:

https://urllib3.readthedocs.org/en/latest/security.html#pyopenssl

听起来问题在于Python ssl库.Pip是否在最新版本中从openssl切换到Python ssl库?我的猜测(也许是一个糟糕的猜测)是pip之前使用过Python库,它只是使用了一个甚至没有发出警告的旧版urllib.所以它一直都是不安全的(尽管特别关注的特殊情况似乎有些近期).

好吧,如果是这样的话,Ubuntu上的pip库存版本是不安全的.我无法使用它来安全地安装这些东西以确保安全.无论如何,我可以从Ubuntu的repo安装相同的东西,它使用GPG验证包:

http://packages.ubuntu.com/search?keywords=python-ndg-httpsclient

除上述内容外,仅适用于Utopic.在Trusty上,我似乎陷入困境.

那是什么交易?我是否必须掷骰子并不安全地安装这个东西一次,然后才安全地使用pip?或者我是否完全误读了这种情况?

python ubuntu ssl pip

7
推荐指数
1
解决办法
1482
查看次数

由于Django不鼓励将参数传递给模板中的函数,所以鼓励什么呢?

据我所知,在Django中,模板语言是故意中断的,以防止在显示代码中进行过多的计算.这意味着,理想情况下,对于用户可能感到被迫进行计算的每种情况,都有一个更合适的替代方案.要么是诀窍的标记或过滤器,要么在视图中直截了当.任何不适合这里的烦恼都是罕见的.

但是我发现了一个相当令人讨厌的常见情况,并且Django有一个更好的方法可以做到这一点,我没有想到,或者他们应该在这里看到光线并在一个计算中移动一点点在不久的将来发布的模板(例如,他们使用if语句参数):

我有一个项目的查询集.我需要以某种方式显示它们,但我显示的内容不仅取决于对象的状态,还取决于其他独立的东西(通常是谁登录).因此,向模型添加功能将无济于事.

到目前为止,我一直在做的是将查询集转换为列表或树结构(取决于任务),并为每个查询集添加"view_extra"属性.view_extra是一个字典,我通常会依赖于依赖于登录等内容的值.除了麻烦之外,它还会破坏查询集的懒惰.我想我可以做一个发电机,但很明显这不是Django开发人员想要做的事情.

我应该更多地尝试查询集注释,但我不知道在一些更复杂的情况下它会有多好用.另外,在树或列表内列表结构场景中没有好处(具有成员的项目的查询集是我需要迭代的更多查询集).

我可以注册一个过滤器,(这里建议使用django模板系统,在模型中调用一个函数),但这是滥用过滤器,对吧?它们旨在转换文本和数据,而不是用于开发人员故意试图让我们不要做的事情的特定目的替代品.

我不知道的任何"正确"的方式吗?我是不是在这里建议这是Django的模板系统的缺陷吗?

python django

5
推荐指数
1
解决办法
750
查看次数

`require':无法加载此类文件——rack/handler (LoadError)

我不是 Ruby 人,所以这可能是一个 101 问题。我只是想使用一个用 Ruby 编写的实用程序。

我正在使用tilemaker,它是openstreetmap生态系统中的一个实用程序。它以 mbtiles 格式创建图块。该存储库附带了一个简单的实用程序,可以在浏览器上提供图块以测试您创建的文件。这个实用程序是用 Ruby 编写的,也是我遇到的问题。

该存储库的自述文件包含服务器实用程序的说明。安装说明如下:

(如果您还没有安装它们,则需要安装 Ruby 和运行演示服务器所需的 gem。例如,在 Ubuntu 上,sudo apt install sqlite3 libsqlite3-dev ruby ruby-dev然后安装sudo gem install sqlite3 cgi glug rack。)

我使用的是 Debian 11(在 Qubes 上,所以我不介意按照他们的建议运行 sudo gem install)。我希望这与 Ubuntu 足够接近,但也许这与问题有关。

这就是我得到的:

$ ruby server.rb ~/countries-raster.mbtiles 
Starting local server
Traceback (most recent call last):
        3: from server.rb:22:in `<main>'
        2: from server.rb:118:in `<class:MapServer>'
        1: from /usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb:85:in `require'
/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb:85:in `require': cannot load such file -- rack/handler …
Run Code Online (Sandbox Code Playgroud)

ruby rack openstreetmap mbtiles

2
推荐指数
1
解决办法
1667
查看次数

标签 统计

python ×2

django ×1

mbtiles ×1

openstreetmap ×1

pip ×1

rack ×1

ruby ×1

ssl ×1

ubuntu ×1