2016-06-07 68 views
-3

我已經在我的Django應用程序Django的不使用Python 3安裝

def get_filename(root): 
    def wrapper(instance, filename): 
     return (root + filename) 

    return wrapper 

... 

docfile = models.FileField(upload_to=get_filename("/some_dir")) 

下面的代碼在以下錯誤

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 353, in execute_from_command_line 
    utility.execute() 
    File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 345, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 348, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 399, in execute 
    output = self.handle(*args, **options) 
    File "/usr/local/lib/python3.4/dist-packages/django/core/management/commands/makemigrations.py", line 150, in handle 
    self.write_migration_files(changes) 
    File "/usr/local/lib/python3.4/dist-packages/django/core/management/commands/makemigrations.py", line 178, in write_migration_files 
    migration_string = writer.as_string() 
    File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/writer.py", line 167, in as_string 
    operation_string, operation_imports = OperationWriter(operation).serialize() 
    File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/writer.py", line 124, in serialize 
    _write(arg_name, arg_value) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/writer.py", line 76, in _write 
    arg_string, arg_imports = MigrationWriter.serialize(item) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/writer.py", line 357, in serialize 
    item_string, item_imports = cls.serialize(item) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/writer.py", line 433, in serialize 
    return cls.serialize_deconstructed(path, args, kwargs) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/writer.py", line 318, in serialize_deconstructed 
    arg_string, arg_imports = cls.serialize(arg) 
    File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/writer.py", line 507, in serialize 
    % (value.__name__, module_name, get_docs_version())) 
ValueError: Could not find function wrapper in myapp.models. 
Please note that due to Python 2 limitations, you cannot serialize unbound method functions (e.g. a method declared and used in the same class body). Please move the function into the main module body to use migrations. 
For more information, see https://docs.djangoproject.com/en/1.9/topics/migrations/#serializing-values 

我運行的Python 3.4.3與python3 manage.py makemigrations myapp結果運行此,是Django使用我的Python 2安裝?

回答

3

Django在您的系統上使用Python的默認安裝。這很可能是2.7

如果要使用特定的Python版本,你可以使用該版本明確

~$ python3 django-admin runserver --settings=myapp.settings 

開始Django的,但你真正應該做的是安裝virtualenv創建虛擬環境來運行Django英寸

它允許您指定您想要使用的Python版本,使用不同版本的Django和不同版本的模塊用於不同的項目。所有這些都不會讓你的系統混淆數千種各種模塊的混合版本。

+0

我使用'python3'運行應用程序(更新問題與我使用的命令) –

+0

'python3 --version'說什麼? – C14L

+0

它說'Python 3.4.3' –

0

你最好設置python-3.4 virtualenv並從虛擬環境運行你的Django項目。

找到安裝指南here和更多信息here

0

修改你使用python3命令。對以發動Django的服務器爲例: python3 manage.py的runserver 0.0.0.0:8000 而不是 蟒蛇manage.py的runserver 0.0.0.0:8000

+0

這就是我正在做的事(添加了我在問題中使用的命令) –