Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python导入错误“;没有名为“模板”的模块;_Python_Linux_Python 2.7_Virtualenv_Mako - Fatal编程技术网

Python导入错误“;没有名为“模板”的模块;

Python导入错误“;没有名为“模板”的模块;,python,linux,python-2.7,virtualenv,mako,Python,Linux,Python 2.7,Virtualenv,Mako,使用virtualenv,它(我认为)可以工作,但没有任何运气尝试导入模块。 在makotest.py文件中,我有: from mako.template import Template 位于我的主文件夹中,virtualenv位于文件夹:venv中 安装的mako刚刚好,pip冻结: Mako==1.0.0 MarkupSafe==0.23 argparse==1.2.1 wsgiref==0.1.2 在外壳中,我看到了(venv),所以它应该正常工

使用virtualenv,它(我认为)可以工作,但没有任何运气尝试导入模块。 在makotest.py文件中,我有:

    from mako.template import Template
位于我的主文件夹中,virtualenv位于文件夹:venv中

安装的mako刚刚好,pip冻结:

    Mako==1.0.0
    MarkupSafe==0.23
    argparse==1.2.1
    wsgiref==0.1.2
在外壳中,我看到了(venv),所以它应该正常工作? 我运行了一个激活了它的系统路径,得到:

    '/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' 
在该site packages文件夹中,有一个带有template.py/pyc以及init文件的“mako”文件夹

但每次运行“pythonmakotest.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
回溯(最近一次呼叫最后一次):
文件“makotest.py”,第1行,在
从mako.template导入*
文件“/home/username/venv/makotest.py”,第1行,在
从mako.template导入*
ImportError:没有名为template的模块

您的问题缺少完整的python回溯,因此我只能根据自己的理解来回答

事实上,您的cwd(以及pythonpath)包含一个mako.py文件,这正是您被绊倒的地方。尝试重命名它,首先删除home目录中的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>
-bash-4.1$bin/pip冻结
#...
模拟==1.0.1
#..
-bash-4.1$bin/python
Python 2.7.3(默认值,2013年4月10日,09:39:41)
[GCC 4.4.6 20110731(Red Hat 4.4.6-3)]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>从模拟导入补丁
在mock.py中
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“mock.py”,第3行,在
从模拟导入补丁
ImportError:无法导入名称修补程序
>>>
-bash-4.1$mv mock.py mock2.py
-bash-4.1$rm mock.pyc
-bash-4.1$bin/python
Python 2.7.3(默认值,2013年4月10日,09:39:41)
[GCC 4.4.6 20110731(Red Hat 4.4.6-3)]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>从模拟导入补丁
>>>补丁

等等,我很困惑。您的目录结构是什么样子的?因为当我把所有的mako文件都保存在我的venvalso中时,这对我来说很有用。。。你激活了你的虚拟电视吗?@Greg-yup!嗯,使用:$source bin/activateAh抱歉,mako.py正是我命名的测试文件,哈哈。我清理了它并添加了trace.ahhh nvm,我认为命名为mako.py是导致问题的原因,当我第一次开始测试时,我称它为makotest.py,但后来我对输入这个有点厌倦了,哈哈。懒惰。。。。。。