2014-12-10 116 views
0

使用virtualenv,让它工作[我认为],但没有任何运气试图导入模块。 在文件makotest.py,我有:Python导入错误“No module named template”

from mako.template import Template 

位于我的主文件夹,在virtualenv中的文件夹:VENV

安装鲭就好了,画中画冻结:

Mako==1.0.0 
    MarkupSafe==0.23 
    argparse==1.2.1 
    wsgiref==0.1.2 

壳,我看到(venv)所以它应该是正确的? 我跑了SYSPATH它激活并获得:

'/home/username' 
    '/home/username/venv/lib/python2.7' 
    '/home/username/venv/lib/python2.7/plat-x86_64-linux-gnu' 
    '/home/username/venv/lib/python2.7/lib-tk' 
    '/home/username/venv/lib/python2.7/lib-old' 
    '/home/username/venv/lib/python2.7/lib-dynload' 
    '/usr/lib/python2.7' 
    '/usr/lib/python2.7/plat-x86_64-linux-gnu' 
    '/usr/lib/python2.7/lib-tk' 
    '/home/username/venv/local/lib/python2.7/site-packages' 
    '/home/username/venv/lib/python2.7/site-packages' 

和站点包文件夹中,是一个template.py/pyc以及初始化文件中的“灰鲭鲨”文件夹。

但每次运行'python makotest.py'时,我都会得到导入错误。 完全没了主意,请帮助〜


更新回溯:

Traceback (most recent call last): 
    File "makotest.py", line 1, in <module> 
    from mako.template import * 
    File "/home/username/venv/makotest.py", line 1, in <module> 
    from mako.template import * 
ImportError: No module named template 
+0

等待我很困惑。你的目录结构是什么样的?因为这对我的作品时,我*保持所有mako文件在我的venv * – Greg 2014-12-11 00:16:14

+0

也......你激活你的virtualenv? – Greg 2014-12-11 00:17:03

+0

@Greg yup!那么,使用:$ source bin/activate – House3272 2014-12-11 00:20:07

回答

1

你的问题缺乏充分蟒蛇回溯所以我只能回答这个基础上我的理解。

事实上,你的cwd(和pythonpath)包含一个mako.py文件是你被绊倒的地方。尝试重命名它,并首先删除你的主目录中的mako.pyc,然后重新运行它。

基本上python试图从你的mako.py文件中导入,而不是你站点包中的mako.py目录。

见下面我举的例子:

-bash-4.1$ bin/pip freeze 
    #... 
    mock==1.0.1 
    #.. 
    -bash-4.1$ bin/python 
    Python 2.7.3 (default, Apr 10 2013, 09:39:41) 
    [GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2 
    Type "help", "copyright", "credits" or "license" for more information. 
    >>> from mock import patch 
    in mock.py 
    Traceback (most recent call last): 
     File "<stdin>", line 1, in <module> 
     File "mock.py", line 3, in <module> 
     from mock import patch 
    ImportError: cannot import name patch 
    >>> 
    -bash-4.1$ mv mock.py mock2.py 
    -bash-4.1$ rm mock.pyc 
    -bash-4.1$ bin/python 
    Python 2.7.3 (default, Apr 10 2013, 09:39:41) 
    [GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2 
    Type "help", "copyright", "credits" or "license" for more information. 
    >>> from mock import patch 
    >>> patch 
    <function patch at 0x7f8276a4a7d0> 
+0

对不起,mako.py正是我给我的测试文件命名的哈哈。我清理它并添加了跟踪。 – House3272 2014-12-11 01:18:28

+0

ahhhh nvm,我想给它起个名字mako.py是导致这个问题的原因,当我第一次开始测试时,我把它称为makotest.py,但后来有点厌倦了输入那个哈哈。懒惰...... – House3272 2014-12-11 02:43:51