1

你好,所以我一直在编写这个脚本来预填充我的 Django 数据库,但是当我停止编写它时,我得到了一个奇怪的错误:我的脚本:

import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'first_project.settings')

import django
django.setup()

## FAKE POPULATION SCRIPT:

import random
from first_app.models import AccessRecord,Webpage,Topic
from faker import Faker

# Creating a fake generator:
fakegen = Faker
topics = ['Search', 'Social', 'Marketplace', 'News', 'Games']


def add_topic():
    t = Topic.objects.get_or_create(top_name=random.choice(topics))[0]
    t.save()
    return t

def populate(N = 5):

    for entry in range(N):

        # GET THE TOPIC FOR THE ENTRY:
        top = add_topic()

        # Create the fake data for that entry:
        fake_url = fakegen.url()
        fake_date = fakegen.date()
        fake_name = fakegen.company()

    # Create the new webpage entry:
    webpg = Webpage.objects.get_or_create(topic = top, url = fake_url, name = fake_name)[0]

    # Create a fake access record for that webpage
    acc_rec = AccessRecord.get_or_create(name = webpg, date = fake_date)[0]


if __name__ == '__main__':
    print("Populating Script!")
    populate(20)
    print("Populating Complete!")

我得到的错误:

python populate_first_app.py
Traceback (most recent call last):
  File "populate_first_app.py", line 11, in <module>
    from faker import Faker
  File "E:\Python\Projects\Python And Django FullStack\Django\first_project\faker.py", line 1, in <module>
    from faker import Faker
ImportError: cannot import name 'Faker' from 'faker'

我从未见过这样的错误我在虚拟环境的影响下使用此脚本我仍然得到错误。

4

5 回答 5

12

您的项目中有一个名为“faker.py”的文件,它隐藏了您安装的库。重命名该文件。

于 2018-12-03T12:51:18.990 回答
0

我尝试了以下方法,它对我有用。

我使用以下命令卸载了我之前使用 venv 中的 pip 和 pip3 安装的 Faker 和 faker(只是为了确定)

pip uninstall Faker

pip uninstall faker

pip3 uninstall Faker

pip3 uninstall faker

然后我使用以下命令使用 conda 在我的 venv 中重新安装 Faker

conda install -c conda-forge faker
于 2021-12-29T11:07:54.453 回答
0

按照这些说明操作,您的问题将得到解决:-

1) 确保您在虚拟环境中安装了 Faker 库,为此使用以下命令:-

pip install Faker

它会在你的虚拟环境中安装最新版本的 faker。

2)现在确保在您的项目中像这样导入它:-

from faker import Faker

和宾果你的问题是固定快乐编码:-)

于 2020-04-12T17:53:59.953 回答
0

您可能在 VS-Code 中执行此操作,因此在 VS 代码的 left_bottom 中选择您的特定环境,选择您为 django 项目创建的 python 环境。

于 2021-09-08T10:57:43.023 回答
0

永远不要创建一个名为“faker.py”的python文件来存储faker模块代码,因为faker名称已经在python安装的脚本中可用。有关更多详细信息,您可以查看以下位置“C:\Python 3.7\Scripts”。除了 faker ex: one.py 或 two.py 之外,您可以为文件指定任何名称来存储与 faker 模块相关的代码。

于 2020-06-19T20:02:06.730 回答