Python 导入错误:';没有名为'*存在吗
我在启动pyramid pserve时获得此堆栈跟踪:Python 导入错误:';没有名为'*存在吗,python,python-import,Python,Python Import,我在启动pyramid pserve时获得此堆栈跟踪: %python$(哪个pserve)…/etc/development.ini 回溯(最近一次呼叫最后一次): 文件“/home/hughdbrown/.local/bin/pserve”,第9行,在 加载入口点('pyramid==1.5','console脚本','pserve')() 文件“/home/hughdbrown/.virtualenvs/pound/local/lib/python2.7/site-packages/pyr
%python$(哪个pserve)…/etc/development.ini
回溯(最近一次呼叫最后一次):
文件“/home/hughdbrown/.local/bin/pserve”,第9行,在
加载入口点('pyramid==1.5','console脚本','pserve')()
文件“/home/hughdbrown/.virtualenvs/pound/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/scripts/pserve.py”,第51行,主视图
return命令。run()
文件“/home/hughdbrown/.virtualenvs/pound/local/lib/python2.7/site packages/pyramid-1.5-py2.7.egg/pyramid/scripts/pserve.py”,第316行,运行中
全局_conf=vars)
loadapp中的文件“/home/hughdbrown/.virtualenvs/pound/local/lib/python2.7/site packages/pyramid-1.5-py2.7.egg/pyramid/scripts/pserve.py”,第340行
返回loadapp(应用规格,名称=名称,相对到=相对到,**千瓦)
loadapp中的文件“/home/hughdbrown/.virtualenvs/pound/lib/python2.7/site packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py”,第247行
返回loadobj(应用程序,uri,name=name,**kw)
loadobj中的文件“/home/hughdbrown/.virtualenvs/pound/lib/python2.7/site packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py”,第271行
全局配置=全局配置)
loadcontext中的文件“/home/hughdbrown/.virtualenvs/pound/lib/python2.7/site packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py”,第296行
全局配置=全局配置)
文件“/home/hughdbrown/.virtualenvs/pound/lib/python2.7/site packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py”,第320行,在_loadconfig中
return loader.get_context(对象类型、名称、全局配置)
get_上下文中的文件“/home/hughdbrown/.virtualenvs/pound/lib/python2.7/site packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py”,第454行
(节)
文件“/home/hughdbrown/.virtualenvs/pound/lib/python2.7/site packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py”,第476行,在上下文中
对象类型,名称=使用,全局配置=全局配置)
get_上下文中的文件“/home/hughdbrown/.virtualenvs/pound/lib/python2.7/site packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py”,第406行
全局配置=全局配置)
loadcontext中的文件“/home/hughdbrown/.virtualenvs/pound/lib/python2.7/site packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py”,第296行
全局配置=全局配置)
文件“/home/hughdbrown/.virtualenvs/pound/lib/python2.7/site packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py”,第337行,在_loadfunc中
return loader.get_context(对象类型、名称、全局配置)
get_上下文中的文件“/home/hughdbrown/.virtualenvs/pound/lib/python2.7/site packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py”,第681行
obj=查找对象(self.spec)
文件“/home/hughdbrown/.virtualenvs/pound/lib/python2.7/site packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/util.py”,第68行,在查找对象中
模块=\uuuu导入\uuuuu(零件)
文件“/home/hughdbrown/.virtualenvs/pound/local/lib/python2.7/site-packages/pound-0.0.40-py2.7.egg/pound/server/________.py”,第10行
从pound.server.views导入端点,路由
ImportError:没有名为views的模块
这在python REPL中运行良好:
%python
Python 2.7.5+(默认,2014年2月27日,19:37:08)
[GCC 4.8.1]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>从pound.server.views导入端点,路由
>>>
并从命令行导入:
%python-c“来自pound.server.views导入端点,路由”
简略的树
输出显示了我正在使用的内容:
%树
├── __初始值
├── 思考
│ ├── __初始值
│ ├── 服务器
│ │ ├── __初始值
│ │ └── 意见
│ │ ├── 环境_templates.py
│ │ ├── 组.py
│ │ ├── __初始值
│ │ ├── 实例.py
│ │ ├── tasks.py
│ │ └── users.py
MyPYTHONPATH
设置为此树的根目录:
%echo$PYTHONPATH
/home/hughdbrown/workspace/ept/pound/lib
我在一个使用Python2.7的virtualenv中运行它。我今天断断续续地工作,但我不知道问题出在哪里。首先,\uuuuu init\uuuuuu.py
似乎可以处理之前的一些导入:
from .database import get_db
from .config import parser
from .views import Endpoints, route
(我将最后一行更改为绝对导入。运气不好。)
我尝试过的事情:
PYTHONPATH
所以我犯的错误是只看源代码树。问题实际上是在运行时环境中,在我的virtualenv中。当我查看那里时,我发现所需的文件没有安装。从根本上说,问题在于
setup.py
我通常的技巧是在发生导入问题的实际上下文中简单地打印sys.path
。在您的情况下,打印位置似乎位于/home/hughdbrown/.local/bin/pserve
。然后在路径显示的位置检查目录和文件
首先,您需要:
import sys
在带有打印表达式的python 2中:
print sys.path
或者在python 3中使用打印功能:
print(sys.path)
我将
PYTHONPATH
设置为。
这为我解决了问题
export PYTHONPATH='.'
对于单衬里,您可以轻松地执行以下操作:
PYTHONPATH='.' your_python_script
这些命令应该在终端中运行我也遇到了这个问题,我刚刚忘记在执行程序之前在终端中键入workon myproject。它们是运行python脚本的几种方法:
- 双击file.py运行(它打开python命令行)
- 从cmd运行file.py
python --version
import sys print (sys.version) input("exit")
assoc .py ftype Python.File
python import sys sys.executable sys.path import win32clipboard win32clipboard.__file__
import sys print(sys.executable) print(sys.path) import win32clipboard print(win32clipboard.__file__)
test ├── __init__.py ├── a │ ├── __init__.py │ └── test.py └── b └── __init__.py
import sys import os sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
module.py module | |--module | | | |--__init__.py | |--module.py
__init.py__
__init__.py