所以我有一个Python脚本,我试图分发给Linux主机。
根据当前的最佳做法,我尝试在virtualenv沙箱中部署我的脚本。但是,我注意到virtualenv并没有虚拟化/usr/sbin
,/var/lib
和/etc
等目录。根据Linux最佳实践,我需要将各种文件和配置写入上述目录。
如果virtualenv没有虚拟化这些目录,我如何创建真正的沙盒部署?
答案 0 :(得分:1)
程序很简单:
诀窍是,脚本在内部获得了虚拟化python的编码路径,所以当你调用它时,它正在使用虚拟化环境。
通常,编码是绝对路径,因此移动脚本文件不会造成任何损害。
但是,具有虚拟env的目录(Python所在的位置)必须保持原样,这是脚本运行的先决条件。
安装脚本必须通过setup.py
,并且必须使用参数entry_point
。使用scripts
不起作用,因为它只需要引用文件并仅进行简单复制。
setup.py
选项--install-scripts
setup.py
允许指定安装脚本的位置。您可以尝试使用它(但这不是必需的)。
$ python setup.py install -h
Common commands: (see '--help-commands' for more)
setup.py build will build the package underneath 'build/'
setup.py install will install the package
Global options:
--verbose (-v) run verbosely (default)
....
Options for 'install' command:
....
--install-scripts installation directory for Python
scripts
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help
setup.py
安装的,那么上面的setup.py
甚至允许直接指定脚本的安装位置。