Opened 16 years ago
Closed 16 years ago
#8371 closed (fixed)
Windows users should use / instead of \ for file paths in settings.py
Reported by: | pariksheet | Owned by: | nobody |
---|---|---|---|
Component: | Documentation | Version: | dev |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Please put a warning in settings.py or the tutorial page that Windows users must only use / not \ in their file paths.
When trying to run the step of python manage.py syncdb
in the tutorial -
http://www.djangoproject.com/documentation/tutorial01/
The command kept throwing the following error -
Traceback (most recent call last): File "manage.py", line 11, in <module> execute_manager(settings) File "C:\Python25\Lib\site-packages\django\core\management\__init__.py", line 334, in execute_manager utility.execute() File "C:\Python25\Lib\site-packages\django\core\management\__init__.py", line 295, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Python25\Lib\site-packages\django\core\management\base.py", line 77, in run_from_argv self.execute(*args, **options.__dict__) File "C:\Python25\Lib\site-packages\django\core\management\base.py", line 96, in execute output = self.handle(*args, **options) File "C:\Python25\Lib\site-packages\django\core\management\base.py", line 178, in handle return self.handle_noargs(**options) File "C:\Python25\Lib\site-packages\django\core\management\commands\syncdb.py" , line 51, in handle_noargs cursor = connection.cursor() File "C:\Python25\Lib\site-packages\django\db\backends\__init__.py", line 56, in cursor cursor = self._cursor(settings) File "C:\Python25\Lib\site-packages\django\db\backends\sqlite3\base.py", line 144, in _cursor self.connection = Database.connect(**kwargs) sqlite3.OperationalError: unable to open database file
The solution was changing the \ to / in my file path for my sqlite database in DATABASE_NAME of settings.py
Change History (9)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
Description: | modified (diff) |
---|
(Fixed description formatting)
This ticket is very confusing. The title and the description are suggesting different changes and there's no actual of the actual setting you were using for comparison. Please clarify what the actual problem is.
comment:3 by , 16 years ago
From experimentation, you get the error cited in the description if you include backslashes, e.g.: DATABASE_NAME = 'c:\tmp\playground'. Changing that to DATABASE_NAME = 'c:/tmp/playground' avoids the error. (There's already an admonition to always use forward slashes down in the comments on the TEMPLATE_DIRS, but for the initial syncdb users probably haven't read that far down.)
comment:4 by , 16 years ago
This was solved in [9010] for part of the tutorial by adding an admonition in the relevant place. What's left to be decided is if a similar admonition should be added to the project settings.py
file template next to the DATABASE_NAME
settting. That will dictate the status of this ticket.
comment:5 by , 16 years ago
Should have been "This was solved in [9010] for part one of the tutorial"
comment:6 by , 16 years ago
Summary: | Windows users should use \ instead of / for file paths in settings.py → Windows users should use / instead of \ for file paths in settings.py |
---|
Made title match description. The problem with the \s is that the either need to be doubled or in a raw string. That's standard Python, so if it's mentioned in the tutorial now I'm not sure it necessary to also put it in settings itself, though I suppose it wouldn't hurt.
comment:7 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:8 by , 16 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
This is just plain wrong.
While using "forward" slashes works, the correct path seperator on windows is "\".
The actual problem is that people don't seem to know about raw strings (or using
).
So the note should be changed to read sth. like:
file. When specifying the path on windows, remember to use double backslashes.
(e.g. C:
homes
user
mysite
sqlite3.db).
comment:9 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Well, no, it's not wrong, since forward slashes work perfectly well. So I don't see any reason to get into discussions of raw strings or doubled backslashes in comments in the settings file. Forward slashes work, and they're easier, let's leave it at that.
This is likely a SQLITE specific thing; Python otherwise doesn't mind / path separators on Windows.