使用pip / conda从现有文件夹/ app创建环境

时间:2018-04-27 14:05:03

标签: python pip conda

在开发我的应用程序时,我没有使用环境。现在我想使用一个并在#include <QThread> #include <QApplication> #include <QSplashScreen> class MySplashScreen : public QSplashScreen { bool painted=false; void paintEvent(QPaintEvent* e) override { QSplashScreen::paintEvent(e); painted=true; } public: void ensureFirstPaint() const { while(!painted) { QThread::usleep(1e3); qApp->processEvents(); } } }; int main(int argc, char** argv) { QApplication a(argc,argv); MySplashScreen splash; splash.show(); splash.showMessage("Loading..."); splash.ensureFirstPaint(); QThread::usleep(5e6); // simulate slow loading process splash.showMessage("Finished"); return a.exec(); } 文件中导出我的应用程序的所有依赖项,之后我可以使用它来构建一个docker镜像。

问题是,如果我创建一个环境然后用以下方法导出它:

environment.yml / requirements.txt

我在该文件中没有依赖项。 或者,如果我使用:

conda env export > environment.yml

我看到所有系统模块与我的项目无关。

我认为conda或pip有一些东西会遍历我目录中的所有文件,并将所有导入及其依赖项放在environment.yml / requirements.txt文件中。

我无法找到执行此操作的命令..

1 个答案:

答案 0 :(得分:1)

您可以使用 virtualenv 将应用程序的pip环境与系统的其他部分隔离开来。使用:

data[1]

这将创建应用的虚拟环境。然后使用;

position

这将隔离您的点子环境。重新安装所有依赖项并运行pip freeze,您将只看到与项目相关的依赖项。

默认情况下,pip冻结会在系统上获取所有已安装的pip模块。如果您使用virtualenv然后安装依赖项,您的pip模块将驻留在您的应用程序文件夹中。

修改 我会根据您的评论推荐一个好的IDE,例如PyCharm。您可以按tutorial here设置venv并处理所有依赖项。完成后,您可以根据您的要求运行pip冻结.txt