python ImportError:无法从'faker'导入名称'Faker'
Posted
技术标签:
【中文标题】python ImportError:无法从\'faker\'导入名称\'Faker\'【英文标题】:python ImportError: cannot import name 'Faker' from 'faker'python ImportError:无法从'faker'导入名称'Faker' 【发布时间】:2019-05-04 18:34:39 【问题描述】:你好,所以我一直在编写这个脚本来预填充我的 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'
我从来没有见过这样的错误我在虚拟环境的影响下使用这个脚本,我已经安装了所有的包'不工作,我仍然得到错误。
【问题讨论】:
【参考方案1】:您的项目中有一个名为“faker.py”的文件,它隐藏了您安装的库。重命名该文件。
【讨论】:
【参考方案2】:按照这些说明操作,您的问题将得到解决:-
1) 确保您在虚拟环境中安装了 Faker 库,为此使用以下命令:-
pip install Faker
它会在你的虚拟环境中安装最新版本的 faker。
2) 现在确保在项目中像这样导入它:-
from faker import Faker
BINGO 你的问题是固定快乐编码:-)
【讨论】:
【参考方案3】:永远不要创建名为“faker.py”的python文件来存储faker模块代码,因为faker名称已经在python安装脚本中可用。有关更多详细信息,您可以查看以下位置“C:\Python 3.7\Scripts”。除了 faker ex: one.py 或 two.py 之外,您可以为文件指定任何名称来存储与 faker 模块相关的代码。
【讨论】:
【参考方案4】:您可能在 VS-Code 中执行此操作,因此在 vs code 的 left_bottom 中选择您的特定环境,选择您为 django 项目创建的 python 环境。
【讨论】:
请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。【参考方案5】:我尝试了以下方法,它对我有用。
我使用以下命令卸载了我之前使用 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
【讨论】:
pip
基于此answer (and PEP 8) 不区分大小写以上是关于python ImportError:无法从'faker'导入名称'Faker'的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:无法从“tensorflow.python.framework”导入名称“device_spec”
python ImportError:无法从'faker'导入名称'Faker'
ImportError:无法从“distutils”(/usr/lib/python3.8/distutils/__init__.py)导入名称“sysconfig”
ImportError:无法从“集合”(/usr/local/lib/python3.10/collections/__init__.py)导入名称“MutableMapping”