【问题标题】:How to run cloned Django project?如何运行克隆的 Django 项目?
【发布时间】:2016-09-02 19:19:31
【问题描述】:

我是一名初级软件工程师,对 Django 很陌生。我构建了this app,并正在编写一个自述文件,向其他人解释如何在他们自己的机器上分叉、克隆和设置应用程序。我在尝试重新创建步骤时遇到了困难。

这是我制定步骤的顺序:

  1. 分叉并克隆存储库
  2. 获取虚拟环境
  3. 点安装要求.txt
  4. 获取access_token和secret_key并存储在secrets.sh中
  5. 设置 Postgres 数据库,创建用户和数据库
  6. 迁移 (?) - 这就是我卡住的地方!

我尝试迁移应用,但没有可应用的迁移。

我试过 django-admin startproject ig_miner_app 。但我收到此错误代码:

CommandError: /Users/Erin/Desktop/CodeByEAllard/project/instagram_miner/manage.py already exists, overlaying a project or app into an existing directory won't replace conflicting files

如果我能解决这个问题,我应该能够像正常一样运行服务器,对吧?

我确定我遗漏了一些东西(或很多东西),但不知道它们是什么。我觉得很傻,因为我显然能够首先创建应用程序,但无法弄清楚如何向其他人解释做同样的事情!有没有关于如何让服务器运行的建议?

谢谢!

【问题讨论】:

  • 你为什么要运行startproject?你已经有一个项目了!运行manage.py migrate 时遇到什么错误?
  • 我刚刚运行了`startproject`,因为我想不出其他可以尝试的方法。这是我在运行`python manage.py migrate`时遇到的错误: Traceback(最近一次调用最后一次):文件“manage.py”,第 8 行,在 from django.core.management import execute_from_command_line ImportError: No名为 django.core.management 的模块
  • 你激活虚拟环境了吗?
  • 哦,是的,virtualenv 肯定被激活了。

标签: python django git github django-admin


【解决方案1】:

虽然我希望这个问题现在已经得到解决,但如果可以的话,让我们快速重新审视一些真正的事情——我相信其他人已经犯了并且目前正在犯这个错误。

我试过 'django-admin startproject ig_miner_app 。但我收到此错误代码: “CommandError:” yadda yadda yadda ...

Django 实际上有很棒的文档。它背后的人是作家和记者,而不是典型的 CS 人。

学习新知识时,请阅读文档。完成待办事项应用教程。原因如下:

django-admin startproject

如果您正在提取预先存在的应用程序的工作副本,这已经得到满足。您首先应该关注此文件:requirements.txt。这是 devDependencies 陈述他们需求的地方,如果你愿意的话,类似于package.json

【讨论】:

    【解决方案2】:
    1. 创建 virtualenv 并激活它。
    2. 安装所有依赖项。
    3. cd 进入项目的主目录。
    4. 运行 $ python manage.py runserver.

    【讨论】:

      【解决方案3】:

      如果 venv 位于项目目录中,我的 IDE 似乎会自动激活它,这导致我在从 git 克隆时不断遇到错误。

      ModuleNotFoundError: No module named ''

      我不得不手动删除原始 venv 并创建一个新的虚拟 env,然后运行这些命令。之后像 PyCharm 一样工作:)

      pip install -r requirements.txt

      python manage.py collectstatic

      【讨论】:

        【解决方案4】:

        我从 GitHub 克隆项目后采取以下步骤:

        pip3 install virtualenv
        virtualenv -p python3 env
        source env/bin/activate
        pip install django
        django-admin startproject <mysite>
        python manage.py startapp polls 
        python manage.py runserver
        on terminal: python manage.py makemigrations <app_name>
        python manage.py migrate
        

        这些在我的系统上运行良好。

        【讨论】:

        • 你为什么要在应该已经拥有两者的克隆项目上运行 startprojectstartapp
        【解决方案5】:

        首先,您收到该错误是因为您正在与克隆项目相同的目录中启动一个项目,该目录已包含名称为 ig_miner_app 的应用程序,因此名称冲突。

        关于其他用户运行项目的步骤,这应该可行。

        克隆项目

        git clone https://github.com/erinallard/instagram_miner.git 
        

        创建并启动一个虚拟环境

        virtualenv env --no-site-packages
        
        source env/bin/activate
        

        安装项目依赖:

        pip install -r requirements.txt
        

        创建一个名为“secrets.sh”的文件

        touch secrets.sh(mac 和 linux)

        MiniWebTool 密钥中获取一个秘密并添加到secrets.sh

        export SECRET_KEY='<secret_key>'
        

        将 secrets.sh 添加到 .gitignore 文件

        创建一个 postgres 数据库并将凭据添加到 settings.py

        DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.postgresql_psycopg2',
                'NAME': 'db_name',
                'USER': 'name',
                'PASSWORD': '',
                'HOST': 'localhost',
                'PORT': '',
            }
        }
        

        然后运行

        python manage.py migrate
        

        创建管理员帐户

        python manage.py createsuperuser
        

        然后

        python manage.py makemigrations ig_miner_app
        

        为应用程序进行迁移

        然后再次运行

        python manage.py migrate
        

        启动开发服务器

        python manage.py runserver
        

        并在浏览器上打开 localhost:8000 以查看应用程序。

        我相信这应该可以让应用在其他机器上启动并运行。如果您遇到任何这些步骤,请告诉我,以便我进行编辑,如果没有,您可以使用它并添加我可能没有添加的任何其他相关信息。

        【讨论】:

        • 谢谢伯纳德!我从未创建过超级用户!我现在要尝试这个修复,让你知道它是怎么回事。 :-)
        • 谢谢你,伯纳德!有效!我非常感谢您的详细帮助。
        • 嗨@BernardParah!首先,感谢您的精彩解释。不过我有一个疑问:你说你需要创建一个 postgres 数据库,但是如果克隆的项目已经有一个 postgres 数据库并配置到 settings.py 中,你还需要这样做吗?确保新计算机在机器上安装了 postgresql 还不够吗?非常感谢!
        • 嗨@Giulia。如果项目已经配置了数据库设置,您仍然需要使用设置中使用的相同凭据创建数据库。计算机安装它是不够的。我知道发生这种情况的唯一方法是使用像 sqlite 这样的数据库。
        • @BernardParah 这是有道理的。谢谢你的解释,我现在就完成这个过程。
        【解决方案6】:

        正如你所说,一旦你克隆了 repo,你必须安装需求

        pip install -r requirements.txt
        

        之后,您必须配置数据库。将详细信息添加到 settings.py

        一旦完成并且您拥有密钥和机密,您就必须进行迁移,然后再迁移。

        cd 进入应用目录并运行

        python manage.py makemigrations
        

        为您克隆的代码中已定义的模型创建迁移文件。之后你必须运行

        python manage.py migrate
        

        应用实际上创建数据库表的迁移。

        现在您对模型进行任何更改或添加额外的模型或字段,您必须再次运行最后两个命令。

        【讨论】:

          【解决方案7】:

          尝试将应用名称传递给migrate 命令:

          manage.py migrate ig_miner_app
          

          【讨论】:

          • 这是我尝试这样做时收到的错误消息:Traceback(最近一次调用最后一次):文件“manage.py”,第 8 行,来自 django.core.management 的 import execute_from_command_line ImportError: No module named django.core.management
          猜你喜欢
          • 1970-01-01
          • 2022-10-16
          • 1970-01-01
          • 2018-08-03
          • 2023-03-29
          • 2019-05-12
          • 2021-10-12
          • 1970-01-01
          • 2014-02-25
          相关资源
          最近更新 更多