小编use*_*401的帖子

国家名称来自字典中的ISO短代码,如何处理非ascii字符

我正在制作一个需要国家/地区短代码的网络应用程序(谷歌应用程序引擎从请求标题中获取)我希望获得国家/地区名称(全名),而不仅仅是2个字母的首字母缩写.

我尝试制作一个python字典,但它打破了bkz名称有非ascii字符(重音标记等)..我使用python库"pycountry"但我不知道如何在我的谷歌应用程序引擎项目中包含它.不幸的是,pycountries输出也有重音符号,所以我不能只复制他们的txt值并制作一本字典......

此外,我只想要国家代码命名查找表,没有其他细节......

这是我一直试图制作的词典的副本,但他们有这些恼人的重音符号......

我在这里先向您的帮助表示感谢

short2long = {"AF":"Afghanistan",
"AX":"Aland Islands",
"AL":"Albania",
"DZ":"Algeria",
"AS":"American Samoa",
"AD":"Andorra",
"AO":"Angola",
"AI":"Anguilla",
"AQ":"Antarctica",
"AG":"Antigua and Barbuda",
"AR":"Argentina",
"AM":"Armenia",
"AW":"Aruba",
"AU":"Australia",
"AT":"Austria",
"AZ":"Azerbaijan",
"BS":"Bahamas",
"BH":"Bahrain",
"BD":"Bangladesh",
"BB":"Barbados",
"BY":"Belarus",
"BE":"Belgium",
"BZ":"Belize",
"BJ":"Benin",
"BM":"Bermuda",
"BT":"Bhutan",
"BO":"Bolivia, Plurinational State of",
"BQ":"Bonaire, Sint Eustatius and Saba",
"BA":"Bosnia and Herzegovina",
"BW":"Botswana",
"BV":"Bouvet Island",
"BR":"Brazil",
"IO":"British Indian Ocean Territory",
"BN":"Brunei Darussalam",
"BG":"Bulgaria",
"BF":"Burkina Faso",
"BI":"Burundi",
"KH":"Cambodia",
"CM":"Cameroon",
"CA":"Canada",
"CV":"Cape Verde",
"KY":"Cayman Islands",
"CF":"Central African Republic",
"TD":"Chad",
"CL":"Chile",
"CN":"China",
"CX":"Christmas Island",
"CC":"Cocos (Keeling) …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine country-codes webapp2

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

设置病原体后'source~/.vimrc'后出错

我在获取.vimrc文件时遇到此错误,

> source ~/.vimrc                                                                    
bash: /home/dev/.vimrc: line 1: syntax error near unexpected token `('
bash: /home/dev/.vimrc: line 1: `call pathogen#infect()'
Run Code Online (Sandbox Code Playgroud)

我的.vimrc文件的内容是,

call pathogen#infect()
syntax on
filetype plugin indent on

set smartindent
set tabstop=4
set shiftwidth=4
set expandtab

set backupdir=~/.vimbackup
set directory=~/.vimdir
Run Code Online (Sandbox Code Playgroud)

我也尝试使用'execute pathogen#infect()',因为它不喜欢'call'关键字..我已经尝试将路径传递给我的bundle文件,如下所示,

call pathogen#infect('~/.vim/bundle/{}')
Run Code Online (Sandbox Code Playgroud)

我也试过把'bundle/{}'作为感染的论据...但是我不太了解vim/bash足以知道要进去的方向,会感激任何帮助......

我试图获取.vimrc文件的原因是因为每次我使用vim编辑文件时,我都会以文件的形式从文件中获取具有此格式的文件,

.file_i_just_worked_on.un~
Run Code Online (Sandbox Code Playgroud)

这让我的主意变得非常烦人.我读过我需要的东西

set backupdir=~/.vimbackup
set directory=~/.vimdir
Run Code Online (Sandbox Code Playgroud)

没有任何地方被vim删除的文件...将不胜感激这个问题的任何帮助.

vim

8
推荐指数
1
解决办法
8083
查看次数

在Google App Engine上使用Mandrill/MailChimp发送确认电子邮件

在过去的几天里,我一直在尝试从我的GAE应用发送确认电子邮件,但我的GAE电子邮件配额已达到限制,虽然我已启用结算功能,但我的电子邮件配额将不会重置,因为我刚启用了结算功能.

我已经研究过使用Mandrill/MailChimp(通过包装器API)并让他们从我的桌面发送电子邮件.但是,当我在GAE应用程序中使用我的代码并在本地开发服务器或在线服务器上运行时,他们将不会发送电子邮件,因为mailsnake,chimpy等都需要"请求"python模块.所以我下载了模块并将其正确放入我的app引擎项目中的位置.

然后我又得到了一个错误......

  File "/home/ahmad/Dropbox/milsal/requests/packages/urllib3/connectionpool.py", line 83, in set_cert
    'CERT_NONE': ssl.CERT_NONE,
AttributeError: 'module' object has no attribute 'CERT_NONE'
Run Code Online (Sandbox Code Playgroud)

然后我意识到请求模块依赖于ssl.py,ssl.py是_ssl的python包装器(app引擎python(2.7)不支持ac库).

所以我尝试将ssl.c放在那个位置,但它没有用......所以现在我卡住了..

我想我自己,即使我把ssl.c这样python ssl包装模块可以使用它,可能会出现另一个错误,我将永远无法跟上追逐所有依赖关系mailchimp/mandrill python api包装器需要在GAE版本的python上运行,这些版本自动存在于我的桌面python上.

虽然我可以使用我的ubuntu python发送电子邮件,但我无法从GAE发送它们.

我的第一个问题是,我想知道是否有人收到了来自GAE的mailchimp/mandrill电子邮件.

第二个问题是:如果没有其他选择我正在做什么来使用mandrill/mailchimp从GAE发送电子邮件如何在GAE项目中安装python模块以及所有它的依赖项自动...?

在此先感谢您的帮助..

python email google-app-engine mailchimp python-2.7

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

Django Admin:显示重复实例的单个实例

我试图从模型中显示单个实例(db行),其中多个实例共享多行的相同字段(列)值.为澄清该陈述,我有以下情况:

ID/Title/Slug/Modified
1   Car     A  1s ago
2   Car     A  2s ago
3   House   B  1s ago
Run Code Online (Sandbox Code Playgroud)

如果上面的小表是我的db我希望我的Django管理页面显示基于我的slug字段(列)的不同行显示最后编辑的版本(我有另一列时间...所以上面的表将显示在管理页面如下:

ID/Title/Slug/Modified
1   Car     A  1s ago
3   House   B  1s ago
Run Code Online (Sandbox Code Playgroud)

虽然第1行和第2行有不同的pk,但它们具有相同的slug,我只希望其中一个具有较晚的时间......

我可以在我的views.py中实现这一点,如下所示

existing_data = MyModel.objects.filter(slug=slug).latest('modified')
Run Code Online (Sandbox Code Playgroud)

但那是因为我正在寻找一个slu_的特定实例..如果我不是,我也可以使用group_by ...

我正试图在管理页面中显示此内容.我在模型管理器中尝试了以下技术,

class ModelManager(models.Manager):
    def get_query_set(self):
        return super(ModelManager, self).get_query_set().group_by('title')
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误

'QuerySet' object has no attribute 'group_by'
Run Code Online (Sandbox Code Playgroud)

然后我正在阅读这部分Django书,他们在模型管理器中实现了原始sql,我尝试复制到我的情况,如下所示,

class ModelManager(models.Manager):
    def uniques(self):
        cursor = connection.cursor()
        cursor.execute("""
            SELECT *
            FROM eventform_event
            GROUP BY slug
            """)
        return [row[0] for row in cursor.fetchone()]
Run Code Online (Sandbox Code Playgroud)

我是我的模特

objects = ModelManager() …
Run Code Online (Sandbox Code Playgroud)

django django-models django-admin

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

如何在node.js中获取目录大小而无需递归遍历目录?

如何在不递归地遍历目录中所有子级的情况下获取node.js中目录的大小?

例如

var fs = require('fs');
fs.statSync('path/to/dir');
Run Code Online (Sandbox Code Playgroud)

会把这样的东西还给我,

{ dev: 16777220,
  mode: 16877,
  nlink: 6,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 62403939,
  size: 204,
  blocks: 0,
  atime: Mon May 25 2015 20:54:53 GMT-0400 (EDT),
  mtime: Mon May 25 2015 20:09:41 GMT-0400 (EDT),
  ctime: Mon May 25 2015 20:09:41 GMT-0400 (EDT) }
Run Code Online (Sandbox Code Playgroud)

但是size属性不是目录的大小,而是目录的大小(即目录中文件的总和)。

如果不递归地找到子目录的大小(然后将其总和),是否没有办法获取目录的大小(包含目录中文件的大小)?

我基本上是想做等效的操作,du -ksh my-directory但是如果给定目录的确很大(例如/),则需要递归地获取真正的目录大小。

fs node.js

5
推荐指数
4
解决办法
4928
查看次数

Django 1.6b gis导入错误

我正在使用django 1.6b和python 3.3,我得到这个导入错误,

./manage.py runserver
Validating models...

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x104ae4d40>
Traceback (most recent call last):
  File "/opt/boxen/pyenv/versions/side-project/lib/python3.3/site-packages/django/utils/autoreload.py", line 93, in wrapper
    fn(*args, **kwargs)
  File "/opt/boxen/pyenv/versions/side-project/lib/python3.3/site-packages/django/core/management/commands/runserver.py", line 97, in inner_run
    self.validate(display_num_errors=True)
  File "/opt/boxen/pyenv/versions/side-project/lib/python3.3/site-packages/django/core/management/base.py", line 308, in validate
    num_errors = get_validation_errors(s, app)
  File "/opt/boxen/pyenv/versions/side-project/lib/python3.3/site-packages/django/core/management/validation.py", line 34, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "/opt/boxen/pyenv/versions/side-project/lib/python3.3/site-packages/django/db/models/loading.py", line 196, in get_app_errors
    self._populate()
  File "/opt/boxen/pyenv/version/side-project/lib/python3.3/site-packages/django/db/models/loading.py", line 78, in _populate
    self.load_app(app_name)
  File "/opt/boxen/pyenv/versions/side-project/lib/python3.3/site-packages/django/db/models/loading.py", line 99, in load_app
    models = …
Run Code Online (Sandbox Code Playgroud)

gis django django-models

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

Pyenv没有自动激活

我在我的环境中安装了pyenv,直到本周末(当我安装'Kivy'时)我的pyenv/local设置工作正常.但是现在当我进入各种python项目目录时,pyenv不会自动正确地激活正确的python版本.

例如

我使用像这样的pyenv创建一个环境,

pyenv virtualenv 3.3.2 work
Run Code Online (Sandbox Code Playgroud)

我让去到一个名为目录work,并有一个.python-version与文本文件work作为唯一的内容.

Pyenv检测到我的环境正在work使用这个文件但我的python版本不是python 3.3.2而是它2.7.9.

出于某种原因,发生了一些事情,我所有的pyenv虚拟环境都使用2.7.9了它们与创建它们的python版本相反.

当我跑,which python我得到,

/opt/boxen/homebrew/bin/python
Run Code Online (Sandbox Code Playgroud)

当我去pyenv版本目录并运行

$ cat pyvenv.cfg                                                                                                                                                                                           
home = /opt/boxen/pyenv/versions/3.3.2/bin
include-system-site-packages = false 
version = 3.3.2
Run Code Online (Sandbox Code Playgroud)

但是,如果我运行pyenv activate我的python版本切换到python 3.3.2(或给定env的适当版本).

问题是,如何让pyenv像以前一样自动激活环境的python版本(在我做某事之前打破它).

python virtualenv boxen pyenv

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

如何在首选项设置中从SharedPreference中获取Long()

我有以下代码从我的xml首选项文件中获取长值,

SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 

long longBreak = Integer.parseInt(getPrefs.getString("breakTime", "8000"));
long shortBreak = Integer.parseInt(getPrefs.getString("breakTime", "5000"));
long workTime = Integer.parseInt(getPrefs.getString("workTime", "10000"));
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我的LogCat显示"SharedPreference getPrefs = ...."行上的错误,我的android应用程序在加载长值之前中断....

我有我的偏好xml如下,

<ListPreference
    android:entries="@array/workList"
    android:entryValues="@array/workTimes"
    android:key="workTime"
    android:summary="Choose Work Time"
    android:title="Work Time" />
<ListPreference
    android:entries="@array/breakList"
    android:entryValues="@array/breakTimes"
    android:key="breakTime"
    android:summary="Choose Break Time"
    android:title="Break Time" />
Run Code Online (Sandbox Code Playgroud)

和我的数组值如下,

<string-array name="workList">
    <item>25 Minutes</item>
    <item>10 Seconds</item>
</string-array>
<string-array name="breakList">
    <item>15 Minutes</item>
    <item> 5 Minutes</item>
    <item>8 Secs</item>
    <item>5 Secs</item>
</string-array>
<string-array name="workTimes">
    <item>1500000</item>
    <item>10000</item>
</string-array>
<string-array name="breakTimes">
    <item>900000</item>
    <item>300000</item>
    <item>8000</item>
    <item>5000</item>
</string-array>
Run Code Online (Sandbox Code Playgroud)

我在差异应用程序中测试了相同的代码,它工作正常....任何帮助?提前致谢...

xml android android-preferences

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

E: 无法找到 psycopg2 的源包或在 virtualenv 中使用 pip

我在设置带有 pip 和虚拟环境的 psycopg2 时遇到问题,因此我可以在 heroku 上启动 django 应用程序。

我目前正在尝试按照此SO 解决方案来解决我的问题(如下),但我一直在尝试运行此命令,

sudo apt-get build-dep python-psycopg2
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

ahmad@ubuntu:~$ sudo apt-get build-dep psycopg2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to find a source package for psycopg2
ahmad@ubuntu:~$ 
Run Code Online (Sandbox Code Playgroud)

……不知道该怎么办?我如何帮助它找到 psycopg2 的源包...

我试过运行这个

apt-get install libpq-dev python-dev
Run Code Online (Sandbox Code Playgroud)

我明白了

0 upgraded, 0 newly installed, 0 to remove and 26 not upgraded.
Run Code Online (Sandbox Code Playgroud)

我尝试安装它的原因是我可以运行 pip install psycopg2 而不会出现所有这些 gcc 错误(请参阅下面的示例运行)

(venv)ahmad@ubuntu:~/workspace/dogood$ pip install Django psycopg2 dj-database-url
Downloading/unpacking Django …
Run Code Online (Sandbox Code Playgroud)

python django pip psycopg2 virtualenv

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

通过urls.py将"next"传递给django登录模板

我正在尝试使用此代码通过urls.py文件将"next"字段传递给我的login.html模板

这很好用:

urls((r'^login/$', 'django.contrib.auth.views.login',
    {'template_name': 'myapp/login.html'}),
Run Code Online (Sandbox Code Playgroud)

但我不希望登录后我的重定向转到'/ accounts/profile /'页面,我想转到网站根目录'/'.

url(r'^login/$', 'django.contrib.auth.views.login',
    {'template_name': 'login.html', 'next':'/'}),
Run Code Online (Sandbox Code Playgroud)

但我明白了

login() got an unexpected keyword argument 'next'
Run Code Online (Sandbox Code Playgroud)

不知道如何通过urls函数传递'next'参数,似乎无法找到其他解决方案,任何建议?

django django-urls

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