我写了一个小python包然后使用pip将它安装在我的Python 2.7虚拟环境中。我的软件包包含一个命令行实用程序脚本,我们称之为my_script.py
,它通过import mypkg
调用使用我的软件包中的功能。该脚本已成功安装到我的virtualenv Scripts文件夹中,但在激活我的virtualenv后,如果我调用
(my_env) > python my_script.py --help
我收到错误:
python: can't open file 'my_script.py': [Errno 2] No such file or directory
如果我打电话
(my_env) > my_script.py --help
我收到错误
Traceback (most recent call last):
File "C:\PyEnvs\my_env\Scripts\my_script.py", line 1, in <module>
import mypkg
ImportError: No module named mypkg
(即使mypkg
清楚地显示pip list
)。只有我打电话
python C:\PyEnvs\my_env\Scripts\my_script.py --help
脚本是否按预期工作。我做错了什么,或者这是Windows上virtualenv的缺陷?
(另请注意,C:\PyEnvs\my_env\Scripts
位于我的%PATH%中,即使C:\PyEnvs\my_env\Scripts
也在我的%PYTHONPATH%中,我也会得到相同的行为。)
答案 0 :(得分:0)
> python my_script.py
仅在当前目录位于PATH环境变量中时才有效。如果不是,则必须完全或相对于工作目录指定它所取的目录。
所以你可以这样做:
> python .\myscript.py
或更新你的PATH并添加&#34;。&#34;对于当前目录。 http://en.wikipedia.org/wiki/PATH_(variable)