我对我的应用程序进行了很多更改:数据库方案、图形、代码等。最大的是我将其重命名为完全不同的包名称。applicatgio 在manifeste.xml 文件中具有相同的名称和Id,并且apk 具有相同的名称和相同的数字签名。
然而,当使用 时./adb install -r myapp.apk, myapp 在菜单中出现两次。当然,由于DB存储在使用包名作为名称的目录中,因此用户感觉它的数据丢失了。
我怎样才能防止这种情况发生,如果不能,我怎样才能自动化迁移?
我有几个线索:提示用户卸载旧应用程序、将数据库从旧文件复制到新文件等。
当它涉及归档和文档可移植性时,它就是关于PDF的.几年前我听说过DjVu,它似乎已经足够成熟,可以用于严肃的用法.好处似乎是小尺寸格式和快速开放/阅读体验.
但我对现实世界中的好坏完全没有反馈:
额外的问题:你是否知道一些好的Python库来破解一些快速而肮脏的脚本作为开头?
编辑:做一些研究,我最终得到维基媒体用它来内部存储其书籍集,但无法找到任何有关它的反馈.有人参与这个项目吗?
我有一个具有父/子自我关系的分类模型对于主要类别和子类别:
class Place(models.Model):
name = models.CharField(_("name"), max_length=100)
categories = models.ManyToManyField("Category", verbose_name=_("categories"))
class Category(models.Model):
name = models.CharField(_("name"), max_length=100)
parent = models.ForeignKey('self', blank=True, null=True, related_name='child_set')
Run Code Online (Sandbox Code Playgroud)
我需要防止孤儿,以防止这种错误(在管理员网页界面)
c_parent = Category(name='Restaurant')
c_parent.save()
c_child = Category(name="Japanese restaurant", parent=c_parent)
c_child.save()
place1 = Place (name="Planet sushi")
place1.save()
place1.categories.add(c_parent)
place1.categories.add(c_child)
Run Code Online (Sandbox Code Playgroud)
所以现在我们有了一个名为"Planet sushi"的新地方,它是一个餐厅(根类别)和一个日本餐厅(子类别)
但我想阻止这种事情:
place2 = Place (name="Tokyofood")
place2.save()
place2.categories.add(c_child)
Run Code Online (Sandbox Code Playgroud)
因为未设置父级,或者不是正确的父类别
我在哪里可以为管理员进行表单验证?和其他形式(因为任何用户都可以添加新的地方,并且必须选择正确的类别)
我正在寻找围绕cron的包装器.
我偶然发现了PyCron,但它是一个Python实现,而不是包装器.
你知道任何好的cron Python包装器吗?
如果没有,你是否测试过PyCron,你能说些什么呢?
//编辑(作为评论的答案,要求更多细节):
我正在寻找以pythonic方式设置cron工作的东西,例如:
>>> job = CronJob(call_back)
>>> job.schedule(datetime, repeat)
>>> job.schedule(datetime2, repeat2)
Run Code Online (Sandbox Code Playgroud)
我可以用这种方式编辑电流:
>>> jobs = loadFromCron()
>>> jobs[0].shedule().schedule(datetime, repeat)
>>> print(jobs[0])
<CronJob object - "call_back" at 2009-11-01>
Run Code Online (Sandbox Code Playgroud)
理想情况下,这将在linux下的"crontab"中写入和读取,并在windows下使用"planified tasks".
我可能使用了错误的术语,谈论cron Python API更准确吗?
我知道,我知道,这很脏.我想知道是否可以劫持__init__Python模块的模块来替换它自己的模块.
我问这是因为我需要阻止django lib启动它的初始进程的某些部分,使其崩溃我们的配置.
是的,最好修复django lib并发回补丁.是的,我和作者有联系.但就目前而言,我需要快速修复.
在Django中,运行./manage.py runserver对于开发人员而言确实非常好,避免了设置和启动真正的Web服务器的麻烦。
如果您没有运行Django,仍然可以非常轻松地设置gunicorn服务器。
AMQP有类似的东西吗?
我不需要完整的实现,也不需要健壮的东西,只需为开发人员轻松安装和运行的东西。PyPi软件包会很棒。
芹菜不是答案。我不需要客户端,我需要服务器。就像迷你Python RabbitMq。
我解析了一个文件并使用Django将其内容保存在数据库中.该网站是100%的英文,所以我天真地认为它一直是ASCII,并愉快地保存文本作为unicode.
你猜其余的故事:-)
当我打印时,我得到通常的编码错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 48: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
快速搜索告诉我,你'u'2019'是UTF-8的代表’.
repr(string) 告诉我这个:
"u'his son\\u2019s friend'"
Run Code Online (Sandbox Code Playgroud)
然后当然我尝试django.utils.encoding.smart_str了一个更直接的方法使用string.encode('utf-8'),我最终得到了一些可打印的东西.不幸的是,它在我的(linux UTF-8)终端中打印出来:
In [76]: repr(string.encode('utf-8'))
Out[76]: "'his son\\xe2\\x80\\x99s friend '"
In [77]: print string.encode('utf-8')
his son?s friend
Run Code Online (Sandbox Code Playgroud)
不是我的预期.我怀疑我对某些东西进行了双重编码或错过了一个重点.
当然文件原始编码不是与文件一起建立的.我想我可以阅读HTTP标题或询问网站管理员,但由于\ u2019s看起来像UTF-8,我认为它是utf-8.我可能是非常错的,告诉我,如果我.
解决方案显然很受欢迎,但对原因的深刻解释以及如何避免再次发生这种情况将会更多.我常常被编码所困扰,这表明我仍然没有完全掌握主题.
我正在使用SJCL,它适用于小 ASCII 字符串。
但是当我尝试解码这段 JSON(HTML 页面加密的结果)时,出现"this is not JSON!"错误。
JSON 是由 SJCL 生成的,虽然我确实使用 LZW 和 base64 对其进行了编码和解码,但对于具有相同工作流程的小字符串,我没有收到此错误。
我跟踪了解码函数的错误消息来源。我认为正则表达式失败了,但我不明白为什么,因为这对我来说似乎是一个完美的 JSON 字符串。
但是,我可能是错误的,就好像我对它进行了 JavaScript 评估一样,它会因语法错误而失败。但是,如果我将它转储到一个文件中,Python 就可以很好地解析它。
我在Ubuntu 12.04上安装了包python-gconf并使用它:它是一个绑定到gnome配置工具的python,并且没有pypi包.
一旦我创建了virtualenv(没有 --no-site-packages),任何导入的尝试gconf都会导致ImportError.
该gconf模块在系统级别工作正常,但在虚拟环境中无效.我调查过,打开python-gconf.deb告诉我它只是一个gconf.so二进制文件.
搜索它告诉我它已安装在/home/lib/python2.7/dist-packages/gtk-2.0/gconf.so中
我确实试图强迫Python手:
sudo ln -s /usr/lib/python2.7/dist-packages/gtk-2.0/gconf.so ~/.virtualenvs/appetizer/lib/python2.7/site-packages/
Run Code Online (Sandbox Code Playgroud)
但它只导致:
>>> import gconf
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: could not import gobject (error was: 'No module named gobject')
Run Code Online (Sandbox Code Playgroud)
所以我猜它非常依赖于GTK.
要检查命令在 bash shell 中是否可用,我通常会这样做:
command -v $COMMAND >/dev/null 2>&1 || {
echo >&2 "Error: this script requires the command '$COMMAND' to be available"
exit 1
}
Run Code Online (Sandbox Code Playgroud)
Windows 中的等价物是什么?