我有一个Django产品,我正在使用iPython进行交互.
我正在尝试在启动shell时自动加载模块:
python manage.py shell
我已将.ipython/ipythonrc复制到项目的根目录并添加到文件中:
import_some module_name model1 model2
但是,当我启动shell时,这些名称没有被加载.
我究竟做错了什么?
我正在尝试在我的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验证.
如何测试以查看某个类是否包含特定属性?
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) 我一直在尝试将测试添加到我正在进行的项目中.
测试在论坛/测试/
当我运行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 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中生成的.但是,似乎必须有某种方式来访问代码.
我创建了一个新模型:
class RssFeed(models.Model):
url = mdels.CharField(max_length=300)
Run Code Online (Sandbox Code Playgroud)
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) 我创建了一个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) 我在我的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) 这对我来说没有任何意义,当论证相同时,断言如何失败?
======================================================================
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) 我从原始安装和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 …
django ×8
python ×7
clang ×1
cron ×1
django-south ×1
egg ×1
gcloud ×1
go ×1
ipython ×1
markdown ×1
osx-lion ×1
reflection ×1
setuptools ×1