好的,所以我真的想要做到这一点,因为我在生成一些大的py2app/py2exe包时会继续遇到它.所以我的包中包含很多模块/包,这些模块/包也可能在用户站点包/默认位置(如果用户有python发行版)但我希望我的分布式包在从我的发行版运行时生效.
现在从我在这里 读到的PYTHONPATH应该是当前目录之后添加到sys.path的第一件事,但是我在我的机器上测试的情况并非如此,所有定义的文件夹$site-packages$/easy-install.pth优先于此.
那么有人可以给我一些关于这个导入顺序的更深入的解释//帮我找到一种方法来设置环境变量,使我分发的包优先于默认安装的包.到目前为止,我的尝试是,例如在Mac-OS py2app上,在我的入口点脚本中:
os.environ['PYTHONPATH'] = DATA_PATH + ':'
os.environ['PYTHONPATH'] = os.environ['PYTHONPATH'] + os.path.join(DATA_PATH
, 'lib') + ':'
os.environ['PYTHONPATH'] = os.environ['PYTHONPATH'] + os.path.join(
DATA_PATH, 'lib', 'python2.7', 'site-packages') + ':'
os.environ['PYTHONPATH'] = os.environ['PYTHONPATH'] + os.path.join(
DATA_PATH, 'lib', 'python2.7', 'site-packages.zip')
Run Code Online (Sandbox Code Playgroud)
这基本上是py2app生成的包的结构.那我就是:
SERVER = subprocess.Popen([PYTHON_EXE_PATH, '-m', 'bin.rpserver'
, cfg.RPC_SERVER_IP, cfg.RPC_SERVER_PORT],
shell=False, stdin=IN_FILE, stdout=OUT_FILE,
stderr=ERR_FILE)
Run Code Online (Sandbox Code Playgroud)
这里PYTHON_EXE_PATH是由py2app添加到包的python exe的路径.现在,这在没有安装python的机器上运行良好.但是,当python发布已经存在时,它们的站点包优先.
我正在使用PDO,用户应该可以选择停止之前触发的请求.
例如,现在我单击生成报告,但是在请求之后我忘了再选择一个使报告无效的字段.所以我需要取消请求,并创建一个新请求.
基本上,如何取消正在运行的MYSQL查询?
if (!isset($_POST['cancel_request'])) {
//query
}else{
//the user cancel the query
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用kill命令和PID进程,但这应该通过PDO运行,我不知道什么是PID.