你好,所以我一直在写这个脚本来预填充我的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:PythonProjectsPython And Django FullStackDjangofirst_projectfaker.py", line 1, in <module>
from faker import Faker
ImportError: cannot import name 'Faker' from 'faker'
我从未见过这样的错误。我是在虚拟环境的影响下使用这个脚本的,我已经安装了所有的软件包。我已经检查了一些事情,比如再次卸载和安装"faker"库,但它不起作用,我仍然收到错误。
您的项目中有一个名为"faker.py"的文件,它隐藏了您安装的库。重命名该文件。
我尝试了以下操作,它对我有效。
我使用以下命令卸载了Faker和Faker(只是为了确定(,我之前使用pip和pip3从我的venv 安装了它
pip uninstall Faker
pip uninstall faker
pip3 uninstall Faker
pip3 uninstall faker
然后我使用以下命令在我的venv中使用conda 重新安装Faker
conda install -c conda-forge faker
按照以下说明操作,您的问题就会得到解决:-
1( 确保您在虚拟环境中安装了Faker库,请使用以下命令:-
pip install Faker
它将在您的虚拟环境中安装最新版本的faker。
2( 现在确保你在你的项目中这样导入它:-
from faker import Faker
和BINGO你的问题是固定的快乐编码:-(
永远不要创建名为"faker.py"的python文件来存储faker模块代码,因为faker名称在python安装的脚本中已经可用。有关更多详细信息,您可以查看以下位置"C:\Python 3.7\Scripts"。您可以为faker ex:one.py或two.py以外的文件指定任何名称,以存储与faker模块相关的代码。
你可能在VS代码中这样做,所以在VS代码的left_bottom中选择你的特定环境,选择你为django项目创建的python环境。