有没有可能将python模块'mechanize‘和'BeautifulSoup’封装到一个单独的.py文件中?
我的问题如下:我有一个需要机械化和BeautifulSoup的python脚本。我从一个php页面调用它。webhost服务器支持python,但没有安装模块。这就是为什么我想这样做的原因。
抱歉,如果这是一个愚蠢的问题。
编辑:感谢您的回答。我认为这个问题的解决方案是围绕virtualenv解决的。有没有人能用非常简单的术语给我解释一下?我看了virtualenv页面,但还是很困惑。再次感谢。
发布于 2009-09-18 21:43:36
查看virtualenv,创建一个本地python安装,您可以在其中安装BeautifulSoup和所有其他所需的库。
http://pypi.python.org/pypi/virtualenv
发布于 2009-09-18 21:17:35
实际上,您不必合并这些文件,也不必将它们安装在系统范围内的位置。只需确保这些库位于Python脚本(因此,PHP应用程序)可读的目录中,并添加到Python加载路径中。
Python运行时在sys.path数组的目录中搜索库。您可以在运行时使用PYTHONPATH环境变量或通过显式地将项附加到sys.path,将目录添加到该数组。下面的代码片段添加到Python脚本中,将脚本所在的目录添加到搜索路径,隐式地使位于同一位置的任何库可供导入:
import os, sys
sys.path.append(os.path.dirname(__file__))发布于 2009-09-18 21:48:05
不,你不能(通常),因为这样做会破坏python使用的模块搜索方法(文件和目录)。我猜您可以通过一些技巧,在没有实际文件系统布局的情况下生成模块层次结构,但这是一个巨大的技巧,可能类似于
>>> sha=types.ModuleType("sha")
>>> sha
<module 'sha' (built-in)>
['__doc__', '__name__']
>>> sha.foo=3
>>> sha.zam=types.ModuleType("zam")
>>> sha.foo
3
>>> dir(sha)
['__doc__', '__name__', 'foo', 'zam']但在任何情况下,您都必须生成创建此布局的代码,并将内容存储到正确命名的标识符中。
您需要的可能是学习使用.egg文件。它们是包含您的库的唯一聚集实体,就像.jar文件一样。
https://stackoverflow.com/questions/1446852
复制相似问题