vir*_*tor 8 python packaging flask
我正在尝试为webapp创建一个python包(基于flask),我想在已知目录中安装一些文件.
例如,在运行集成服务器时,flask会尝试查找当前包中的templates和static目录(基于粘贴).但是在制作中我更喜欢那些安装在更具体的地方的目录virtualenv/share/package-name/{static,templates}.否则他们会在某个lib/python-2.x/...不合适的地方.
我尝试使用data_files参数in 安装文件setup.py,但这似乎对整个树(error: can't copy 'xxx': doesn't exist or not a regular file)没有用.
在这种情况下,什么是正确的解决方案?
您可以做的是将虚拟环境和静态文件打包到本机包(.deb 或 .rpm)中,然后您可以将它们放置在您想要的任何位置。我在这里写了一篇关于此的博文。它使用一个名为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>
Run Code Online (Sandbox Code Playgroud)
您也可以使用 fpm 指定其他配置文件,例如 nginx 配置等。但这取决于您,并且可能意味着您的部署灵活性稍差。
希望有帮助!