我在Mac上使用'requests'模块时遇到问题.我使用python34并通过pip安装了'requests'模块.我可以通过再次运行安装来验证这一点,它会告诉我已经安装了模块.
15:49:29|mymac [~]:pip install requests
Requirement already satisfied (use --upgrade to upgrade): requests in /opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages
Run Code Online (Sandbox Code Playgroud)
虽然我可以通过交互式Python解释器导入"请求"模块,但尝试在PyCharm中执行"导入请求"会产生错误"无模块命名请求".我检查了我的PyCharm Python解释器设置,并且(我相信)它设置为与我的环境中使用的python34相同.但是,我也看不到PyCharm中列出的"请求"模块.

很明显,我在这里遗漏了一些东西.你们可以建议我应该在哪里看,或者我应该修复什么才能让这个模块正常工作?我的印象是,当我在我的环境中通过pip安装模块时,PyCharm会检测到这些变化.然而,似乎有些事情在我身边被打破了......
尽管我的脚本在PyCharm中运行,但在cmd提示符下运行脚本时遇到问题。我有这样的文件夹结构:
MyCode # PyCharm project folder
/UsefulFunctions
/Messaging
/Texter.py
/DiscordBot
/DiscordBot.py
Run Code Online (Sandbox Code Playgroud)
在DiscordBot.py中,我有一个导入
from UsefulFunctions.Messaging import Texter
Run Code Online (Sandbox Code Playgroud)
当我从PyCharm运行它而没有问题时,此方法有效。但是,当我尝试从位于该DiscordBot级别的命令提示符运行时,出现以下错误:
ImportError:没有名为“ UsefulFunctions”的模块
因此,我自然而然地认为这意味着该UsefulFunctions文件夹不在我的路径上。因此,我进入了环境变量并将其添加到PATH变量(以及MyCode用于良好测量的文件夹)中。它仍然遇到此错误。我在这里浏览了一些有关导入的文章(主要是从其他文件夹导入文件),他们建议您执行以下操作:
import sys
sys.path.insert(0, '/path/to/application/app/folder')
import file
Run Code Online (Sandbox Code Playgroud)
或将__init__.py文件添加到每个文件夹中,以使它们注册为软件包。我继续将__init__文件添加到尝试从中导入的每个文件夹和子文件夹中,但是仍然无法从命令提示符下运行...我省略了sys.path.insert()解决方案,因为在将其明确添加到PATH变量后,我看不到任何好处。另一种解决方案是添加“。” 在导入之前,因为据推测它只是在搜索python的PATH。我尝试这样做是:
from .UsefulFunctions.Messaging import Texter
Run Code Online (Sandbox Code Playgroud)
ImportError:尝试相对导入,没有已知的父包
这个错误现在也显示在PyCharm上...我不明白为什么我的初始脚本可以在PyCharm上顺利运行的原因,但是从提示符处运行时,同一程序似乎找不到我的导入。有人可以解释运行程序的PyCharm和我的提示之间的区别吗?为什么这不,尽管有工作__init__.py的文件,并有加MyCode,并UsefulFunctions在Windows上我的PATH变量?
目前正在Django网站上工作,我在将一个类及其属性从我的models.py模块导入views.py我的音乐应用程序中的模块时遇到问题.根据我的理解,Django使用元类来构造模型,因此定义的字段不会最终作为类的属性.这是问题,如果是这样,我该如何解决?
目录结构:
music
migrations
templates
_init_
admin.py
apps.py
models.py
tests.py
urls.py
views.py
Run Code Online (Sandbox Code Playgroud)
里面的代码models.py是:
from django.db import models
class Album(models.Model):
artist = models.CharField(max_length=250)
album_title = models.CharField(max_length=500)
genre = models.CharField(max_length=100)
album_logo = models.CharField(max_length=1000)
def __str__(self):
return self.album_title + ' - ' + self.artist
Run Code Online (Sandbox Code Playgroud)
里面的代码views.py是:
from django.http import HttpResponse
from .models import Album
from django.template import loader
def index(request):
all_albums = Album.object.all()
template = loader.get_template('music/index.html')
context = {'all albums': all_albums,}
return HttpResponse(template.render(context, request))
def details(request, …Run Code Online (Sandbox Code Playgroud)