Django从Windows迁移至Linux后启动报错

1、环境

         Django 3.1.6

        python3.7.2

        从windows迁移至Linux 

2、启动脚本start.sh的内容如下:

        python3.7 manage.py runserver --noreload 0.0.0.0:5600 --settings=myproject.settings

3、错误信息

        Traceback (most recent call last):
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/core/management/base.py", line 330, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/core/management/commands/runserver.py", line 61, in execute
    super().execute(*args, **options)
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/core/management/base.py", line 371, in execute
    output = self.handle(*args, **options)
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/core/management/commands/runserver.py", line 68, in handle
    if not settings.DEBUG and not settings.ALLOWED_HOSTS:
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/conf/__init__.py", line 69, in _setup
    self._wrapped = Settings(settings_module)
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/conf/__init__.py", line 170, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/local/python3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'myproject.settings\r'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 23, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/core/management/__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/core/management/base.py", line 343, in run_from_argv
    connections.close_all()
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/db/utils.py", line 232, in close_all
    for alias in self:
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/db/utils.py", line 226, in __iter__
    return iter(self.databases)
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/db/utils.py", line 153, in databases
    self._databases = settings.DATABASES
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/conf/__init__.py", line 69, in _setup
    self._wrapped = Settings(settings_module)
  File "/usr/local/python3.7/lib/python3.7/site-packages/django/conf/__init__.py", line 170, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/local/python3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'myproject.settings\r'

4、原因分析

        程序是从windows拷贝至Linux后,启动失败。

        直接在myproject目录下,输入 python3.7 -c "import myproject.settings" ,没有出现错误,应该不是包缺失的问题。但从抛出的错误,module  name 为myproject.settings\r 后面多了一个“\r”的换行符。在使用Linux系统时,有时候会遇到一些不必要的r字符,这种字符通常是由Windows系统所使用的换行符引起的。           

5、解决办法

        修改启动脚本start.sh,去除换行符

        vi start.sh

        :set ff=unix

        :wq

        设置文件格式为UNIX格式,保存文件并退出。这样就可以去除r字符。

6、重新启动成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
当在 Linux启动 Django 时遇到 "Segmentation fault (core dumped)" 错误,这通常意味着进程发生了段错误(Segmentation fault),导致进程崩溃并生成了核心转储文件(core dumped)。 Segmentation fault 是一种访问非法内存或内存越界的错误。这可能是由于以下原因导致的: 1. 代码错误:检查你的 Django 代码是否存在潜在的内存访问问题,如指针错误、数组越界、空指针引用等。仔细检查你的代码逻辑和数据结构,确保没有访问非法内存的情况。 2. 依赖问题:检查你的系统依赖项是否正确安装和配置。确保你使用的 Django 版本与依赖项兼容,并按照官方文档中的建议进行设置。 3. 环境问题:可能是由于操作系统或其他环境问题导致的。尝试在不同的环境中运行 Django,或者尝试更新操作系统、Python 和相关的软件包到最新版本。 4. 资源限制:检查系统资源是否受限,如内存、磁盘空间等。如果资源不足,可能会导致 Django 进程出现错误。 在解决此问题时,可以尝试以下步骤: 1. 更新 Django 和相关依赖项到最新版本。 2. 检查代码中的潜在错误,并修复可能导致段错误的问题。 3. 检查系统资源限制,并确保足够的内存和磁盘空间。 4. 尝试在其他环境中运行 Django,以确定是否与特定环境相关。 如果问题仍然存在,可以查看生成的核心转储文件以获取更多关于崩溃位置的信息。使用 `gdb` 调试工具可以帮助分析核心转储文件。例如,可以运行以下命令来启动 gdb 调试器并加载核心转储文件: ```shell gdb <path_to_python_interpreter> <path_to_core_dump_file> ``` 然后使用 `bt` 命令查看堆栈跟踪信息,以确定导致段错误的原因。 如果你仍然无法解决问题,建议寻求更深入的技术支持或咨询 Django 社区以获取进一步的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋枫秋雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值