ValueError:path在mount'C:'上,在mount'F:'开始,同时在windows中进行django迁移

时间:2016-11-06 11:43:57

标签: django django-migrations

我正在尝试运行以下命令

python manage.py makemigrations

但是,得到错误

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

可能是什么原因?

完成追溯: -

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:'

1 个答案:

答案 0 :(得分:5)

发生错误是因为Django试图找到两个目录之间的相对路径并且它们不存在(因为它们位于不同的驱动器上)。这里提到了这个问题:https://bugs.python.org/issue7195。但是这种回答有助于理解问题:https://bugs.python.org/msg94780

  

os.relpath 为您提供两个目录之间的相对路径。

     

您遇到的问题是,在Windows上,相对路径   如果两个目录位于不同的驱动器上,则不存在存在   (这正是错误信息所说的内容)。

当我遇到此错误时,我试图为我自己的应用程序制作一个位于F:驱动器上的迁移文件。运行:

python.exe .\manage.py makemigrations
让pango扫描每一个变化。它找到了djcelery的变化。它位于我的C:驱动器上的虚拟环境中。

要解决此问题,我在调用makemigrations时添加了应用名称:

python.exe .\manage.py makemigrations <<app_name>>