我正在尝试创建一个网页应用程序的python包(基于flask),我想在一个已知的目录中安装一些文件。
例如,在运行集成服务器(基于粘贴)时,flask会尝试查找当前包中的templates和static目录。但在生产环境中,我更希望将这些目录安装在更具体的位置,如virtualenv/share/package-name/{static,templates}。否则,它们将位于lib/python-2.x/...下的某个位置,这似乎并不合适。
我尝试使用setup.py中的data_files参数安装文件,但这对整个树(error: can't copy 'xxx': doesn't exist or not a regular file)似乎没有用。
在这种情况下,正确的解决方案是什么?
发布于 2014-01-16 00:11:24
你可以做的就是把你的虚拟环境和静态文件打包成一个本地包(.deb或.rpm),然后你可以把它们放在你想放的任何地方。我在这个here上写了一篇博文。它使用了一个名为fpm的简单的ruby gem,虽然我没有将静态文件从python包中分离出来,但是您可以通过在fpm命令的末尾添加另一个路径映射来实现,如下所示
fpm -s dir -t deb -n food-truck -v 0.1 -d "python,python-dev,postgresql" /home/ubuntu/food_truck-build/=/home/ubuntu/foodtruck.com <path to static files>=<destination of static files>您也可以使用fpm来指定其他配置文件,如nginx配置等。但这取决于你,这可能意味着你的部署不太灵活。
希望这能有所帮助!
https://stackoverflow.com/questions/14060275
复制相似问题