我在虚拟环境(venv)中安装了一个应用程序。当我尝试运行应用程序时
$ venv/bin/python purge
我明白了:
Traceback (most recent call last):
File "purge", line 2, in <module>
import datamanip
ImportError: No module named datamanip
模块:datamanip位于gate/venv/ext/datamanip/datamanip
。
datamanip目录包含__init__.py
。
脚本是:
#! /usr/bin/env python
import datamanip
from lib import lib
def purge():
lib.init()
with lib.get_db() as db:
db.purge()
db.execute( lib.sql[ "schema" ] )
lib.deploy( db )
datamanip.file.wipe_dir( "work/log" )
purge()
如果我将第2行更改为:“来自ext import datamanip”,则脚本会成功,直到找不到下一个模块(同样位于/ venv / ext中)。 (例如,datamanip本身调用位于/ ext中的模块,因此它是下一个失败点)
对于从venv / ext。
调用的每个模块也是如此sys.path是:
>>> import sys
>>> print (sys.path)
['', '/home/user/gate/venv/lib/python2.7',
'/home/user/gate/venv/lib/python2.7/plat-x86_64-linux-gnu',
'/home/user/gate/venv/lib/python2.7/lib-tk',
'/home/user/gate/venv/lib/python2.7/lib-old',
'/home/user/gate/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/user/gate/venv/local/lib/python2.7/site-packages',
'/home/user/gate/venv/lib/python2.7/site-packages']
我在没有虚拟环境的情况下尝试了相同的操作并且具有完全相同的问题。感谢您提前提供任何帮助/指导。