Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Makefiles不会启动conda环境_Python_Makefile_Conda - Fatal编程技术网

Python Makefiles不会启动conda环境

Python Makefiles不会启动conda环境,python,makefile,conda,Python,Makefile,Conda,我有makefile .PHONY: start-generate start-generate: source activate myenv mkdir "data_channels_`date +%Y%m%d_%H%M%S`" python main/datageneration.py ./"data_channels_`date +%Y%m%d_%H%M%S`" 3 但当我运行它时,我得到了 $ make start-generate source activa

我有makefile

.PHONY: start-generate

start-generate:
    source activate myenv
    mkdir "data_channels_`date +%Y%m%d_%H%M%S`"
    python main/datageneration.py ./"data_channels_`date +%Y%m%d_%H%M%S`" 3
但当我运行它时,我得到了

$ make start-generate
source activate myenv
make: source: Command not found
make: *** [start-generate] Error 127
虽然我可以在make外运行source activate myenv

如果我尝试

start-generate:
    ( \
        source activate myenv; \
        mkdir "data_channels_`date +%Y%m%d_%H%M%S`"; \
        python main/datageneration.py ./"data_channels_`date +%Y%m%d_%H%M%S`" 3; \
    )
我得到了错误

/bin/sh: 2: source: not found
Traceback (most recent call last):
  File "main/datageneration.py", line 1, in <module>
    import pandas as pd
ImportError: No module named pandas
make: *** [start-generate] Fehler 1
pandas的错误很明显,因为源命令不起作用。关于这一点,有消息/bin/sh:2:source:notfound。也许问题是我需要/bin/bash而不是/bin/sh?如果是,我如何得到它


这里的问题是什么?

您可以直接在virtualenv中使用python

.PHONY: start-generate

start-generate:
    mkdir "data_channels_`date +%Y%m%d_%H%M%S`"
    /absPATH/python main/datageneration.py ./"data_channels_`date +%Y%m%d_%H%M%S`" 3
或者,您可以按以下方式操作:


这是行不通的:每个人都有自己的康达环境。当我把MaFor文件发给同事时,如果我按照你的建议去做,它就不起作用了。考虑不同的环境,源激活MyEnv,ValualEnV的名称可能是不同的。您可以像编写单元测试一样编写Makefile,init以创建一个名为pip install requirements的virtualenv,然后开始生成。在我的公司,我们有关于myenv应该如何调用的约定,所以这不是问题。我不希望每次运行start generate时都创建一个新环境。我不知道你的确切意思。你能发布你正在考虑的Makefile吗?我找到了一个方法。我们靠得更近了,但它还不起作用。我相应地更新了我的问题。
start-generate:
    ( bash -c "source activate myenv; \
        mkdir "data_channels_`date +%Y%m%d_%H%M%S`"; \
        python main/datageneration.py ./"data_channels_`date +%Y%m%d_%H%M%S`" 3" )