Closed quater closed 8 years ago
Thanks for reporting. The syntax has been adopted to be Python 3 compatible.
Thanks for the quick turnaround. Based on your feedback I went on to checkout your latest commit https://github.com/jrief/django-shop/commit/08454d1a5fa861800d8656a8d242c097ac222c1e.
While running manage.py migrate
I still encountered an error, indicating that there is at least one more place (i.e. django-shop/shop/apps.py
), where the code would need to be re-factored.
(shoptutorial) vagrant@vagrant:~/django-shop/example$ ./manage.py migrate
/home/vagrant/shoptutorial/lib/python3.4/importlib/_bootstrap.py:321: RemovedInDjango19Warning: django.utils.importlib will be removed in Django 1.9.
return f(*args, **kwds)
/home/vagrant/shoptutorial/lib/python3.4/importlib/_bootstrap.py:321: RemovedInDjango19Warning: The django.forms.util module has been renamed. Use django.forms.utils instead.
return f(*args, **kwds)
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
utility.execute()
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/core/management/__init__.py", line 328, in execute
django.setup()
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/apps/registry.py", line 115, in populate
app_config.ready()
File "/home/vagrant/django-shop/shop/apps.py", line 22, in ready
if get_version() < (1, 8):
TypeError: unorderable types: str() < tuple()
should be fixed now
That moved us to the next error...
(shoptutorial) vagrant@vagrant:~/django-shop/example$ ./manage.py migrate
/home/vagrant/shoptutorial/lib/python3.4/importlib/_bootstrap.py:321: RemovedInDjango19Warning: django.utils.importlib will be removed in Django 1.9.
return f(*args, **kwds)
/home/vagrant/shoptutorial/lib/python3.4/importlib/_bootstrap.py:321: RemovedInDjango19Warning: The django.forms.util module has been renamed. Use django.forms.utils instead.
return f(*args, **kwds)
Traceback (most recent call last):
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/db/models/fields/related.py", line 2138, in __init__
to._meta
AttributeError: 'bytes' object has no attribute '_meta'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
utility.execute()
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/core/management/__init__.py", line 346, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/core/management/base.py", line 394, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/core/management/base.py", line 445, in execute
output = self.handle(*args, **options)
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/core/management/commands/migrate.py", line 93, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/db/migrations/executor.py", line 19, in __init__
self.loader = MigrationLoader(self.connection)
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/db/migrations/loader.py", line 47, in __init__
self.build_graph()
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/db/migrations/loader.py", line 185, in build_graph
self.load_disk()
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/db/migrations/loader.py", line 103, in load_disk
migration_module = import_module("%s.%s" % (module_name, migration_name))
File "/home/vagrant/shoptutorial/lib/python3.4/importlib/__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1129, in _exec
File "<frozen importlib._bootstrap>", line 1471, in exec_module
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "/home/vagrant/django-shop/email_auth/migrations/0001_initial.py", line 11, in <module>
class Migration(migrations.Migration):
File "/home/vagrant/django-shop/email_auth/migrations/0001_initial.py", line 32, in Migration
('groups', models.ManyToManyField(related_query_name='user', related_name='user_set', to=b'auth.Group', blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of his/her group.', verbose_name='groups')),
File "/home/vagrant/shoptutorial/lib/python3.4/site-packages/django/db/models/fields/related.py", line 2143, in __init__
(self.__class__.__name__, to, RECURSIVE_RELATIONSHIP_CONSTANT)
AssertionError: ManyToManyField(b'auth.Group') is invalid. First parameter to ManyToManyField must be either a model, a model name, or the string 'self'
This error was also discovered by our unit tests, check here: https://travis-ci.org/jrief/django-shop/jobs/106527945 we still allow to fail for Py-3
for the moment, it probably is better to proceed with Python-2.7.10. This is the version used for development.
the last error is weird.
Its ./manage.py makemigrations
which produced that code.
You you please try to create the migration files using Py-3.4 and apply them yourself.
This issue was moved to awesto/django-shop#316
As of writing this here, the Django Shop documentation http://django-shop.readthedocs.org/en/latest/tutorial/intro.html does not specify any Python version requirements. Since Django CMS supports Python 3.4 I thought that I can use Python 3.4 for Django Shop as well.
However it appears that parts of Django Shop are not yet compatible with Python 3.x.
While dealing with issue https://github.com/jrief/django-shop/issues/48 I was using Python 3.4 and encountered the below error:
As of the Python documentation this error is due to
iteritems
having been deprecated with the introduction of Python 3.x.https://wiki.python.org/moin/Python3.0
This problem is not observed while Python 2.7.6 is used.