>>> import sys
>>> sys.version
'2.7.3 (default, Mar 13 2014, 11:03:55) \n[GCC 4.7.2]'
>>> import os
>>> os.remove is os.unlink
False
>>> os.remove == os.unlink
True
Run Code Online (Sandbox Code Playgroud)
这是为什么?是不是os.unlink应该是os.remove的别名?
我正在为我的项目创建一个网站,我有一个名为的字段Purchase_Date:
class Member_Registration(models.Model):
Purchase_Date=models.DateField(max_length=10, help_text="Enter the date of purchase")
Run Code Online (Sandbox Code Playgroud)
如果用户选择了未来的日期,我想抛出一个错误。我该怎么做?
昨天,我编辑了bin/activate我的 virtualenv的脚本,以便它设置PYTHONPATH环境变量以包含某个外部包的开发版本。我不得不这样做,因为该setup.py包使用distutils并且不支持develop命令 à la setuptools。PYTHONPATH就在终端中使用 Python 解释器而言,设置工作正常。
然而,刚才我在 PyCharm 中打开了项目设置,发现 PyCharm 并不知道有问题的外部包——PyCharm 既没有列出外部包,也没有列出它的路径。自然,这是因为 PyCharm 不(并且不能可靠地)解析或获取bin/activate脚本。我可以在 PyCharm 项目设置中手动添加路径,但这意味着我必须重复自己(一次在bin/activatePyCharm 项目设置中)。这不是 DRY,那很糟糕。
在 中创建site-packages一个指向外部包的符号链接几乎是完美的。这样,至少 PyCharm 的源代码编辑器可以找到包,终端中的 Python 解释器也可以。但是,不知何故 PyCharm 仍然没有在项目设置中列出包,我不确定这样保留它是否可以。
那么我如何才能将外部包添加到我的 virtualenv/项目中......
我在manage.py celery call myapp.tasks.mytask使用我的用户crontab 调度时遇到问题,因为当cron尝试运行该作业时,它会在stderr中获取此信息(将其邮寄给我,如/var/mail/kal)
Unknown command: 'celery'
Type 'manage.py help' for usage.
Run Code Online (Sandbox Code Playgroud)
相同的命令完全来自常规的bash登录shell,但它在crontab中不起作用.
我在Debian上这样做:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.0 (wheezy)
Release: 7.0
Codename: wheezy
Run Code Online (Sandbox Code Playgroud)
我已经在StackOverflow上阅读了许多类似的问题,并尝试了许多建议的解决方案.到目前为止,他们都没有为我工作过.以下是我到目前为止尝试过的解决方案:
首先,我确保在crontab中指定相关的环境变量:
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Run Code Online (Sandbox Code Playgroud)
注意:这些在以下所有解决方案中都保持不变.
* * * * * /home/kal/.virtualenvs/foo_dev/bin/python /home/kal/foo/manage.py celery call myapp.tasks.mytask
Run Code Online (Sandbox Code Playgroud)
* * * * * cd /home/kal/foo && /home/kal/.virtualenvs/foo_dev/bin/python ./manage.py celery call myapp.tasks.mytask
Run Code Online (Sandbox Code Playgroud)
〜/ mytask.sh的内容:
#!/usr/bin/env bash
source /home/kal/.virtualenvs/foo_dev/bin/activate;
cd /home/kal/foo;
./manage.py celery …Run Code Online (Sandbox Code Playgroud) 例如,这应该是一个有效的JSON文档吗?
"foo"
Run Code Online (Sandbox Code Playgroud)
json.org上的语法规范并不完全清楚.我不认为在规范中的任何地方都说任何东西必须在有效的JSON文档中的{}对象或[]数组中.
JSONLint将独立字符串标记"foo"为错误,并期望所有内容都在{}对象或[]数组中.
但是,主流浏览器(IE 8,IE 10,Chrome 28,Firefox 23,Opera 12)的JSON对象接受单独的文字就好了:
>>> JSON.parse('"foo"');
"foo"
>>> JSON.parse('true');
true
>>> JSON.parse('1234');
1234
Run Code Online (Sandbox Code Playgroud)
Python 2.7+也是如此:
>>> import json
>>> json.loads('"foo"')
u'foo'
>>> json.loads('true')
True
>>> json.loads('1234')
1234
Run Code Online (Sandbox Code Playgroud)
那么谁是对的,谁是错的?
python ×4
django ×2
python-2.7 ×2
cron ×1
json ×1
lint ×1
pycharm ×1
python-3.x ×1
pythonpath ×1
validation ×1
virtualenv ×1