小编Car*_*rst的帖子

pip-installed uWSGI ./python_plugin.so错误

我已经使用pip安装了uWSGI并使用XML启动它来加载我的应用程序.XML配置包含<plugin>python</plugin>.在我的新服务器上,它会导致错误:

open("./python_plugin.so"): No such file or directory [core/utils.c line 3321]
!!! UNABLE to load uWSGI plugin: ./python_plugin.so: cannot open shared object file: No such file or directory !!!
Run Code Online (Sandbox Code Playgroud)

我可以找到.c.o版本:

sudo find / -name 'python_plugin.c'
/srv/www/li/venv/build/uwsgi/build/uwsgi/plugins/python/python_plugin.c
/srv/www/li/venv/build/uwsgi/plugins/python/python_plugin.c
sudo find / -name 'python_plugin.o'
/srv/www/li/venv/build/uwsgi/build/uwsgi/plugins/python/python_plugin.o
/srv/www/li/venv/build/uwsgi/plugins/python/python_plugin.o
sudo find / -name 'python_plugin.so'
Run Code Online (Sandbox Code Playgroud)

但没有发现.我之前的系统通过apt-get进行了uwsgi安装,但这确实很旧(而且我很确定它通常使用pip安装的uwsgi,但是对于共享对象可能不行吗?)

一些背景信息:

  • Ubuntu 12.0.4 LTS
  • Python 2.7(virtualenv)
  • 我已经在我的venv中安装了uWSGI,正常使用pip install uwsgi(没有sudo)

所以我有点无能为力:(我不能成为世界上唯一拥有此权利的人,对吧?我应该自己编译.so对象吗?(如果是这样,怎么样?)或者还有另一个很好的解决方案吗?

python uwsgi

30
推荐指数
3
解决办法
3万
查看次数

只能用root运行uwsgi

我正准备将nginx/uwsgi与烧瓶一起用于我正在开发的网站,但我遇到了问题.注意,使用flask的debug:5000端口,网站本身运行良好,但我想现在投入生产.解释我做了什么.

它是一个linode ubuntu 12.04LTS服务器,我安装它是这样的:

# install nginx
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get upgrade --show-upgraded
sudo apt-get install nginx-full
# installing uwsgi
sudo apt-get install build-essential python-dev libxml2-dev
sudo apt-get install libc6 libexpat1 libgd2-xpm libgeoip1 libpam0g libpcre3 libssl1.0.0 libxml2 libxslt1.1 zlib1g 
sudo pip install uwsgi
# python basics
sudo apt-get install python-pip build-essential python-dev
sudo pip install virtualenv
sudo pip install virtualenvwrapper
sudo mkdir -p /srv/www/li/
cd /srv/www/li/
virtualenv venv
source /srv/www/li/venv/bin/activate
pip install …
Run Code Online (Sandbox Code Playgroud)

nginx flask uwsgi

14
推荐指数
3
解决办法
3万
查看次数

Flask 0.10在会话cookie上给出unicode错误

升级到Flask 0.10后,我收到此错误:

flask.debughelpers.UnexpectedUnicodeError
UnexpectedUnicodeError: A byte string with non-ASCII data was passed to the session system which can only store unicode strings.  Consider base64 encoding your string (String was 'iB\rOU#\xf7BO\x08^\xa6\xd1)v\xad')

Traceback (most recent call last)
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/srv/www/li/venv/lib/python2.7/site-packages/flask/app.py", line 1479, in full_dispatch_request
response = self.process_response(response) …
Run Code Online (Sandbox Code Playgroud)

python flask flask-login

6
推荐指数
2
解决办法
1114
查看次数

Ubuntu R ForEach/DoMC不使用多核

我在R中构建了一个函数(运行在Ubuntu 12.04 LTS 64位,4核i7服务器,多线程和6gb ram),我使用标准软件包安装了R:

sudo apt-get install r-base r-recommended r-base-dev
sudo apt-get install r-cran-multicore r-cran-iterators r-cran-foreach r-cran-domc 
Run Code Online (Sandbox Code Playgroud)

注:我也安装foreachdoMC内部R(它没有帮助),像我安装的deldir软件包:

install.packages(c("deldir"), dependencies = TRUE)
Run Code Online (Sandbox Code Playgroud)

我的函数运行正常,但它不使用并行核心(只需最多输出8个):

library(deldir)
library(foreach)
library(doMC)
registerDoMC(cores=8)

#getDoParWorkers()
#getDoParName()
#getDoParVersion()

# loop through files
inputfiles <- dir(path="/home/geoadmin/data/objects/", pattern='.txt')
for( inputfilenr in 1:length(inputfiles))
{
# set file variables    
curinputfile = paste("/home/geoadmin/data/objects/",inputfiles[[inputfilenr]], sep = "", collapse = NULL)
print (curinputfile)
curoutputfile = paste("/home/geoadmin/data/objects/",substr(inputfiles[[inputfilenr]], start=1, stop=10), '.out', sep = "", collapse = NULL)
# select the …
Run Code Online (Sandbox Code Playgroud)

ubuntu foreach r domc

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

mongodb:为嵌套文档创建顶级索引,而不必索引每个单独的子级别?

这个问题是关于我如何使用 MongoDB 中的索引在嵌套文档中查找内容,而不必索引每个单独的子级别。我在 MongoDB 中有一个集合“测试”,它基本上是这样的:

{
"_id" : ObjectId("50fdd7d71d41c82875a5b6c1"),
"othercol" : "bladiebla",
"scenario" : {
        "1" : { [1,2,3] },
        "2" : { [4,5,6] }
}}
Run Code Online (Sandbox Code Playgroud)

场景有多个键,每个文档可以有场景的任何子集(即从无到子集到全部)。另外:场景不能是数组,因为我需要它作为 Python 中的字典。我在“场景”字段上创建了一个索引。
我的问题是我想在集合上进行选择,过滤具有特定值的文档。所以这在功能上运行良好:

db.test.find({"scenario.1": {$exists: true}})
Run Code Online (Sandbox Code Playgroud)

但是,它不会使用我在场景中放置的任何索引。仅当我将索引放在“scenario.1”上时,才会使用索引。但是我可以有数千个(或更多)场景(并且集合本身有 100.000 条记录),所以我宁愿不要!
所以我尝试了替代方案:

db.test.find({"scenario": "1"}) 
Run Code Online (Sandbox Code Playgroud)

这将在场景中使用索引,但不会返回结果。使场景成为数组仍然会产生相同的索引问题。

我的问题清楚吗?谁能指出我如何在这里实现最佳性能?

Ps 我见过这个:如何在 MongoDB 中创建嵌套索引?但在我的情况下,该解决方案是不可能的(由于场景的数量)

mongodb

3
推荐指数
1
解决办法
2201
查看次数

可读的尝试除了计算处理

我有一个程序,我需要做很多计算,但输入可能不完整(所以我们不能总是计算所有结果),这本身就很好,但是会给代码的可读性带来问题:

def try_calc():
    a = {'1': 100, '2': 200, '3': 0, '4': -1, '5': None, '6': 'a'}
    try:
        a['10'] = float(a['1'] * a['2'])
    except (ZeroDivisionError, KeyError, TypeError, ValueError) as e:
        a['10'] = None
    try:
        a['11'] = float(a['1'] * a['5'])
    except (ZeroDivisionError, KeyError, TypeError, ValueError) as e:
        a['11'] = None
    try:
        a['12'] = float(a['1'] * a['6'])
    except (ZeroDivisionError, KeyError, TypeError, ValueError) as e:
        a['12'] = None
    try:
        a['13'] = float(a['1'] / a['2'])
    except (ZeroDivisionError, KeyError, TypeError, ValueError) as e:
        a['13'] = …
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
1
解决办法
128
查看次数

python flask-security:加密错误"无法识别哈希"

我在Flask项目中使用Flask-Security.基本上一切正常,直到我尝试打开密码加密.基本上我遵循这个:http://packages.python.org/Flask-Security/configuration.html 这导致我添加这个:

app.config['SECURITY_PASSWORD_HASH'] = 'bcrypt'
app.config['SECURITY_PASSWORD_SALT'] = '$2a$16$PnnIgfMwkOjGX4SkHqSOPO'
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会导致错误:

File "/home/geoadmin/.virtualenvs/flask/lib/python2.7/site-packages/flask/app.py", line 1701, in __call__
return self.wsgi_app(environ, start_response)
File "/home/geoadmin/.virtualenvs/flask/lib/python2.7/site-packages/flask/app.py", line 1689, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/home/geoadmin/.virtualenvs/flask/lib/python2.7/site-packages/flask/app.py", line 1687, in wsgi_app
response = self.full_dispatch_request()
File "/home/geoadmin/.virtualenvs/flask/lib/python2.7/site-packages/flask/app.py", line 1360, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/geoadmin/.virtualenvs/flask/lib/python2.7/site-packages/flask/app.py", line 1358, in full_dispatch_request
rv = self.dispatch_request()
File "/home/geoadmin/.virtualenvs/flask/lib/python2.7/site-packages/flask/app.py", line 1344, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/geoadmin/.virtualenvs/flask/lib/python2.7/site-packages/flask_security/decorators.py", line 171, in wrapper
return f(*args, **kwargs)
File "/home/geoadmin/.virtualenvs/flask/lib/python2.7/site-packages/flask_security/views.py", line 72, in login …
Run Code Online (Sandbox Code Playgroud)

python flask

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

Python 意外的 int(0 或 ...) 行为

编辑:对于使用逻辑运算符将其标记为重复的人,我发现链接Python 逻辑运算符和那里的答案相当模糊,在找到“或”答案之前必须深入研究它。所以虽然这里的问题是 Python 将 None、False 和 0 一起抛出,很好,但在这里我们想区分前两个和实际的整数或浮点值。除了解释一些基本行为并且没有解决“我们如何以最pythonic的方式处理这种特定情况”之外,那篇文章真的对我的问题没有帮助。//

我在使用 int(... 或 ...) 转换整数时遇到了一些意想不到的行为。我之前没有注意到,因为我通常使用类似的东西:

整数(值或 0)

这总是很好,但是当我将 or 0 更改为另一个值并输入 0 时,我得到了一些我没想到的东西。示例是 int,但浮点数也是如此。

In [88]: int(None or 1)
Out[88]: 1

In [89]: int(2 or 1)
Out[89]: 2

In [90]: int(0 or 1)
Out[90]: 1

In [91]: int(0)
Out[91]: 0
Run Code Online (Sandbox Code Playgroud)

编辑:我希望 [90] 与 [91] 做同样的事情,但显然不是。我的问题是:为什么它会执行这种行为,以及如何以 Pythonic 的方式处理此问题而不必求助于尝试异常。

这是因为它像布尔值一样求值,因此 0 返回 or 值?处理这个问题的常见做法是什么?因为这在我们的程序中是很常见的事情,使用 try except 会创建一些难看的、不太可读的代码......这里使用 python 2.7。

这是我目前获得预期行为的解决方法:

try:
    value = int(value)
except (TypeError, ValueError) as e: …
Run Code Online (Sandbox Code Playgroud)

python

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

标签 统计

python ×5

flask ×3

uwsgi ×2

domc ×1

flask-login ×1

foreach ×1

mongodb ×1

nginx ×1

r ×1

ubuntu ×1