Virtualenv:" main.py"给出错误,但" python main.py"工作得非常好

时间:2015-12-24 22:50:21

标签: python python-3.x virtualenv

我创建了一个新的virtualenv来测试fuzzywuzzy。我激活了我的环境和#34; pip install fuzzywuzzy"

我创建了一个文件" main.py"使用以下代码:

from fuzzywuzzy import fuzz

r = fuzz.ratio("this is a test", "this is a test!")

print(r)

回到控制台,我激活env并输入" main.py":

(fuzzytest) C:\Users\Family\Desktop\fuzzytest>main.py
Traceback (most recent call last):
  File "C:\Users\Family\Desktop\fuzzytest\main.py", line 1, in <module>
    from fuzzywuzzy import fuzz
ImportError: No module named 'fuzzywuzzy'

但如果我这样做&#34; python main.py&#34;:

(fuzzytest) C:\Users\Family\Desktop\fuzzytest>python main.py
97

工作正常。这是为什么?我做错了吗?

2 个答案:

答案 0 :(得分:4)

尝试使用#! /usr/bin/env python启动脚本。

根据python docs,这应该适用于Windows。

答案 1 :(得分:1)

  

我做错了吗?

1)pip在特定目录中安装模块。

2)当您使用python执行程序时,python仅在某些目录中搜索您在程序中导入的模块。您可以通过查看以下输出来查看这些目录:

import sys
print(sys.path) 

其中一个目录是pip用于安装模块的目录。

3)当你尝试在没有python的情况下执行程序时,会搜索其他一些目录,这些目录不包含fuzzywuzzy模块。