擅长:python、mysql、java
<p>我认为这可能是Python2.6的一个限制。我已经测试过了,使用<code>-m</code>选项执行一个包(在<code>.</code>中或从一个带有easy_install的egg中安装)在2.7中可以正常工作,但在2.6中不行。例如,在我的系统(Ubuntu)上,当前目录中有一个名为<code>pkg_exec</code>的测试包,其中<code>__main__.py</code>只打印<code>sys.argv</code>:</p>
<pre><code>xx@xx:~/tmp/pkg_exec$ python2.6 -m pkg_exec
/usr/bin/python2.6: pkg_exec is a package and cannot be directly executed
xx@xx:~/tmp/pkg_exec$ python2.7 -m pkg_exec
['/home/xx/tmp/pkg_exec/pkg_exec/__main__.py']
</code></pre>
<p>另外,根据<a href="http://docs.python.org/using/cmdline.html" rel="nofollow">the 2.7 docs</a>:</p>
<blockquote>
<p>Changed in version 2.7: Supply the package name to run a <code>__main__</code> submodule.</p>
</blockquote>