Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ValueError: path is on mount 'C:', start on mount 'F:' while django migrations in windows

I am trying to run the following command

python manage.py makemigrations

But, getting the error

ValueError: path is on mount 'C:', start on mount 'F:'

What can be the reason?

complete traceback:-

Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Python34\lib\site-packages\django\core\management\__init__.py",  line 367, in execute_from_command_line
utility.execute()
File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python34\lib\site-packages\django\core\management\base.py", line 294, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Python34\lib\site-packages\django\core\management\base.py", line 345, in execute
output = self.handle(*args, **options)
File "C:\Python34\lib\site-packages\django\core\management\commands\makemigrations.py", line 189, in handle
self.write_migration_files(changes)
File "C:\Python34\lib\site-packages\django\core\management\commands\makemigrations.py", line 207, in   write_migration_files
migration_string = os.path.relpath(writer.path)
File "C:\Python34\lib\ntpath.py", line 579, in relpath
raise ValueError(error)
ValueError: path is on mount 'C:', start on mount 'F:'
like image 387
ankit Avatar asked Nov 06 '16 11:11

ankit


1 Answers

The error is occurring because Django is trying to find a relative path between 2 directories and they do not exist (since they are on different drives). This issue is mentioned here: https://bugs.python.org/issue7195. But this response helps to understand the problem: https://bugs.python.org/msg94780.

os.relpath does give you a relative path between two directories.

The problem you are encountering is that, on Windows, a relative path doesn't even exist if the two directories are on different drives (which is exactly what the error message says).

When I ran into this error, I was trying to make a migration file for my own app that is located on the F: drive. Running:

python.exe .\manage.py makemigrations

had Django scanning for every change. It located a change for djcelery. This is located in a virtual environment on my C: drive.

To fix this, I just added the app name when calling makemigrations:

python.exe .\manage.py makemigrations <<app_name>>
like image 172
Michael B Sopko Avatar answered Sep 19 '22 05:09

Michael B Sopko