小编Bry*_*ock的帖子

在iPython和Django中使用配置文件

我有一个Django产品,我正在使用iPython进行交互.

我正在尝试在启动shell时自动加载模块:

python manage.py shell

我已将.ipython/ipythonrc复制到项目的根目录并添加到文件中:

import_some module_name model1 model2

但是,当我启动shell时,这些名称没有被加载.

我究竟做错了什么?

python django ipython

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

Django如何确定上传的图像是否有效?

我正在尝试在我的Django应用程序中为我的模型添加图像.

models.py

class ImageMain(models.Model):
"""This is the Main Image of the product"""
    product = models.ForeignKey(Product)
    photo = models.ImageField(upload_to='products')
Run Code Online (Sandbox Code Playgroud)

在开发模式下,每次我尝试通过Django管理员上传图像时,我都会得到:

Upload a valid image. The file you uploaded was either not an image or a corrupted image.
Run Code Online (Sandbox Code Playgroud)

我正在尝试上传的jpg可以通过os X Preview查看,因此它似乎是有效的.

似乎问题是Python Imaging Library没有将它识别为图像.为什么会出现有效图像?

PIL已安装,通过Django shell验证.

python django python-imaging-library

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

如何测试以查看某个类是否包含特定属性?

如何测试以查看某个类是否包含特定属性?

In [14]: user = User.objects.get(pk=2)  

In [18]: user.__dict__  
Out[18]:   
{'date_joined': datetime.datetime(2010, 3, 17, 15, 20, 45),  
 'email': u'IloveDick@nwo.gov',  
 'first_name': u'',  
 'id': 2L,  
 'is_active': 1,  
 'is_staff': 0,  
 'is_superuser': 0,  
 'last_login': datetime.datetime(2010, 3, 17, 16, 15, 35),  
 'last_name': u'',  
 'password': u'sha1$44a2055f5',  
 'username': u'DickCheney'}  

In [25]: hasattr(user, 'username')  
Out[25]: True  

In [26]: hasattr(User, 'username')  
Out[26]: False  
Run Code Online (Sandbox Code Playgroud)

我有一个奇怪的错误,其中显示的属性比我实际定义的要多.我想有条件地阻止这个.

例如

if not hasattr(User, 'karma'):
  User.add_to_class('karma', models.PositiveIntegerField(default=1)) 
Run Code Online (Sandbox Code Playgroud)

python django reflection

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

为什么Django testrunner没有找到我创建的测试?

我一直在尝试将测试添加到我正在进行的项目中.

测试在论坛/测试/

当我运行manage.py test时,在Django 1.2的测试中找不到我创建的任何测试

我从他们自己的软件包开始我的所有测试,但已经简化为只在我的tests.py文件中.当前的tests.py看起来像:

from django.test.client import Client  
from django.test import TestCase  
from utils import *   
from forum.models import *  
from forum import auth  

class ForumTestCase(TestCase):  
    def test_root_page(self):  
        response = self.client.get('/')  
        self.assertEqual(response.status_code, 200)  

    def test_signin_page(self):  
        response = self.client.get("/account/signin/")  
        self.assertEqual(response.status_code, 200)  
Run Code Online (Sandbox Code Playgroud)

我确定我遗漏了一些非常基本和明显的东西,但我无法解决问题.有任何想法吗?

INSTALLED_APPS = (  
    'django.contrib.auth',  
    'django.contrib.contenttypes',  
    'django.contrib.sessions',  
    'django.contrib.sites',  
    'django.contrib.admin',  
    'django.contrib.humanize',  
    'forum',  
    'django_authopenid',  
)  
Run Code Online (Sandbox Code Playgroud)

为什么Django testrunner没有找到我创建的测试?

测试在论坛/测试/:

__init__.py
forum/tests/test_views.py  
forum/tests/test_models.py
Run Code Online (Sandbox Code Playgroud)

__init__.py的目录中也有一个文件.

python django

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

Python egg的源代码在哪里?

我正在尝试为Python Markdown-2.0.3-py2.7.egg添加视频扩展

事情不起作用,所以我想用pdb调试器来看看发生了什么.

我似乎无法找到插入pdb的源代码.

鸡蛋位于这里:

/usr/local/lib/python2.7/site-packages/Markdown-2.0.3-py2.7.egg
Run Code Online (Sandbox Code Playgroud)

使用iPython,我可以查看Markdown模块的Python源代码及其路径:

/usr/local/lib/python2.7/site-packages/Markdown-2.0.3-py2.7.egg/markdown/__init__.py
Run Code Online (Sandbox Code Playgroud)

但我无法导航到该文件,也无法在文本编辑器中打开它.

我猜测我正在查看的源代码可能是从编译的egg中生成的.但是,似乎必须有某种方式来访问代码.

python django markdown egg setuptools

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

如何添加新模型并使用South 0.7.2生成迁移?

我创建了一个新模型:

class RssFeed(models.Model):  
  url = mdels.CharField(max_length=300)  
Run Code Online (Sandbox Code Playgroud)

$ python manage.py schemamigration论坛--add-model RssFeed

  Traceback (most recent call last):
    File "manage.py", line 13, in <module>
      execute_manager(settings)
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/core/management/__init__.py", line 438, in execute_manager
      utility.execute()
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/core/management/__init__.py", line 379, in execute
      self.fetch_command(subcommand).run_from_argv(self.argv)
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/core/management/base.py", line 191, in run_from_argv
      self.execute(*args, **options.__dict__)
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/core/management/base.py", line 220, in execute
      output = self.handle(*args, **options)
    File "/usr/local/lib/python2.7/site-packages/South-0.7.2-py2.7.egg/south/management/commands/schemamigration.py", line 134, in handle
      for action_name, params in change_source.get_changes():
    File "/usr/local/lib/python2.7/site-packages/South-0.7.2-py2.7.egg/south/creator/changes.py", line 397, in get_changes
      real_fields, meta, m2m_fields = self.split_model_def(model, model_defs[model_key(model)])
    File "/usr/local/lib/python2.7/site-packages/South-0.7.2-py2.7.egg/south/creator/freezer.py", …
Run Code Online (Sandbox Code Playgroud)

django-models django-south

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

为什么Python脚本可以在CLI中运行,但是从cron作业调用时却不行?

我创建了一个Python脚本,我想通过Ubuntu服务器上的cronjob每天运行.

这是从命令行运行此脚本的方式:

python  /home/username/public_html/IDM_app/manage.py cleanUpPosts  
Run Code Online (Sandbox Code Playgroud)

从CLI调用时,脚本运行正常.
但是,当我尝试通过cronjob运行脚本时,脚本无法正常运行.日志文件显示正在请求脚本,但它们未显示脚本未正确执行的原因.

我在脚本中添加了Python日志记录.从CLI调用脚本时,日志记录正确进行.从cron调用时,python日志记录无法写入其日志文件.

我怀疑问题是cronjob在请求脚本时没有运行shell.

我似乎无法找到cron守护进程记录错误的任何地方.

我创建了/var/log/cron.log
然而这似乎没有更新.

由于我认为问题源于ENV变量,我试图让cronjob为自己显示ENV.

这是我的crontab的样子:
$ crontab -u username -e

m h  dom mon dow   command  
43 17 * * * /bin/sh python /home/username/public_html/IDM_app/manage.py cleanUpPosts  
43 17 * * * python /home/username/public_html/IDM_app/manage.py cleanUpPosts  
45 21 * * * echo "-----------------"; echo "import os; print os.environ" | python  
47 21 * * * /bin/sh echo "------with shell-------"; echo "import os; printos.environ" | python  
MAILTO=bryanw@nowhere.com  
Run Code Online (Sandbox Code Playgroud)

我以为它会输出到屏幕,但它没有.ENV变量在哪里输出?

无论如何,这里是日志文件:

# tail -n 5 /var/log/*.log   
==> …
Run Code Online (Sandbox Code Playgroud)

python django cron environment-variables

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

为什么Gcloud不安装"app-engine-go"组件?

我在我的Macbook Pro osX 0.11.6上为App Engine设置了Golang:go go.8.8 darwin/amd64

我将Cloud SDK更新为148.0.0

sudo/usr/local/google-cloud-sdk/bin/gcloud组件更新

??????????????????????????????????????????????????????????????  
?? Creating update staging area                             ??  
??????????????????????????????????????????????????????????????  
?? Uninstalling: BigQuery Command Line Tool                 ??  
??????????????????????????????????????????????????????????????  
?? Uninstalling: Cloud SDK Core Libraries                   ??  
??????????????????????????????????????????????????????????????  
?? Uninstalling: Cloud Storage Command Line Tool            ??  
??????????????????????????????????????????????????????????????     
?? Uninstalling: gcloud cli dependencies                    ??  
??????????????????????????????????????????????????????????????  
?? Installing: BigQuery Command Line Tool                   ??  
??????????????????????????????????????????????????????????????  
?? Installing: Cloud SDK Core Libraries                     ??  
??????????????????????????????????????????????????????????????  
?? Installing: Cloud Storage Command Line Tool              ??  
??????????????????????????????????????????????????????????????  
?? Installing: gcloud cli dependencies …
Run Code Online (Sandbox Code Playgroud)

go gcloud

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

这是怎么发生的?AssertionError:响应重定向到'http:// testserver/account/signin /',预期'http:// testserver/accounts/signin /'

这对我来说没有任何意义,当论证相同时,断言如何失败?

======================================================================
FAIL: test_register_page_redirects_to_signin_page (forum.tests.test_views.ForumTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/Bryan/work/osqa/forum/tests/test_views.py", line 19, in test_register_page_redirects_to_signin_page
    self.assertRedirects(response, '/accounts/signin/')
  File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/test/testcases.py", line 345, in assertRedirects
    (url, expected_url))
AssertionError: Response redirected to 'http://testserver/account/signin/', expected 'http://testserver/accounts/signin/'
Run Code Online (Sandbox Code Playgroud)

这是测试:

class ForumTestCase(TestCase):

    def test_register_page_redirects_to_signin_page(self):
        response = self.client.get('/account/register/', follow=True)
        self.assertRedirects(response, '/accounts/signin/')
        self.assertTemplateUsed(response, "auth/signin.html")
        self.assertEqual(response.status_code, 200)
Run Code Online (Sandbox Code Playgroud)

django django-testing

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

在os X 10.7 Lion上设置Django的最佳方法是什么?

我从原始安装和Xcode 4.3在os X 10.7上设置Python和Django.

我尝试使用Python的默认安装:
/ Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/

我通常使用一个名为easy_install的基于Python的包管理器.Easy_install似乎无法找到编译器.

编辑:当我尝试安装MySQL-python时出现此错误:

$ sudo easy_install MySQL-python 
Password:
Searching for MySQL-python
Reading http://pypi.python.org/simple/MySQL-python/
Reading http://sourceforge.net/projects/mysql-python/
Reading http://sourceforge.net/projects/mysql-python
Best match: MySQL-python 1.2.3
Downloading http://download.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.3.tar.gz
Processing MySQL-python-1.2.3.tar.gz
Running MySQL-python-1.2.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-P9H9WX/MySQL-python-1.2.3/egg-dist-tmp-rRTfZL
warning: no files found matching 'MANIFEST'
warning: no files found matching 'ChangeLog'
warning: no files found matching 'GPL'
unable to execute llvm-gcc-4.2: No such file or directory
error: Setup script exited with error: command 'llvm-gcc-4.2' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

错误:安装脚本退出并显示错误:命令'llvm-gcc-4.2'因退出状态1而失败
显然,系统尝试使用用于编译已安装的Python框架的相同编译器.出于某种原因,Apple没有包含llvm-gcc-4.2.

Xcode …

python django clang osx-lion

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