faint-zoo-41552
04/01/2024, 9:58 PMfaint-zoo-41552
04/01/2024, 9:59 PMcommand '/home/mark/.metaflowconfig/micromamba/bin/micromamba run --prefix /home/mark/micromamba/envs/metaflow/linux-64/6551c37ac2ebcb6 pip3 --disable-pip-version-check --no-input --no-color --isolated install --dry-run --only-binary=:all: --upgrade-strategy=only-if-needed --target=/tmp/tmp626fgjw3 --report=/tmp/tmp626fgjw3/report.json --progress-bar=off --quiet --abi cp310 --abi none --abi abi3 --platform manylinux1_x86_64 --platform manylinux_2_17_x86_64 --platform linux_x86_64 --platform manylinux2014_x86_64 --platform manylinux_2_18_x86_64 --platform manylinux_2_21_x86_64 --platform manylinux_2_25_x86_64 --platform manylinux_2_20_x86_64 --platform manylinux2010_x86_64 --platform manylinux_2_19_x86_64 --platform manylinux_2_23_x86_64 --platform manylinux_2_26_x86_64 --platform any --platform manylinux_2_24_x86_64 --platform manylinux_2_27_x86_64 requests>=2.21.0 boto3>=1.14.0 pandas==2.2.0 pyarrow==15.0.0 openai==1.14.2 tiktoken==0.5.2 smart_open==6.4.0 ujson==5.9.0 ranx==0.3.19' returned error (1)
Note that boto3 and requests are ">=" constraints, which contradicts the documentation that constraints are hardcoded to specific versions for pypi: https://docs.metaflow.org/scaling/dependencies/librariesdry-beach-38304
04/01/2024, 10:03 PMfaint-zoo-41552
04/01/2024, 10:04 PMfaint-zoo-41552
04/01/2024, 10:05 PMfaint-zoo-41552
04/01/2024, 10:05 PMfaint-zoo-41552
04/01/2024, 10:12 PMfaint-zoo-41552
04/01/2024, 10:12 PMfaint-zoo-41552
04/01/2024, 10:13 PM[tool.poetry]
name = "garbage"
version = "0.1.0"
description = ""
authors = ["Mark Roden <mroden@crexi.com>"]
readme = "README.md"
[tool.poetry.dependencies]
python = "~3.11"
pandas = "2.2.0"
pyarrow = "15.0.0"
openai= "1.14.2"
tiktoken = "0.5.2"
smart_open = "6.4.0"
ujson = "5.9.0"
scipy = "1.12.0"
ranx = "0.3.19"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
for the poetry file, with a simple
``````faint-zoo-41552
04/01/2024, 10:13 PMimport pandas as pd
import ujson as json
import tiktoken
from smart_open import open
import scipy
from ranx import Qrels, Run
if __name__ == '__main__':
print("what up")
returns "what up"faint-zoo-41552
04/01/2024, 10:14 PMfaint-zoo-41552
04/02/2024, 12:50 AMfaint-zoo-41552
04/02/2024, 12:51 AMfaint-zoo-41552
04/02/2024, 12:57 AMfaint-zoo-41552
04/02/2024, 12:58 AMdry-beach-38304
04/02/2024, 5:38 AM.metaflow which you can try to parse to see what it is doing.
• alternatively, as I suggested earlier, I would try with the Netflix extensions which have a more verbose (among other things) implementation of the decorator which may give more clue (see here: https://docs.metaflow.org/scaling/dependencies/libraries#bleeding-edge-versions-of-the-decorators).
◦ with that version, you may get more debugging messages on failure
◦ you can also use METAFLOW_DEBUG_CONDA=1 which gives a lot of information
◦ and finally, once it does resolve (since you seem to have managed to get it to resolve), you can do metaflow environment show … and that will show you all the packages that were installed which would answer your question a bit more easily than parsing the conda.cnd file (but of course, the information is available in both).
Finally, another thing to try is the line that gives no error, you can modify it a bit to remove some of the flags like --quiet to see if you get more detail (that’s one of the changes in the bleeding edge one — I found that --quiet made it impossible to debug so I actually went one step further and run the command with ‘-v’ which is typically much more helpful. You can manually do that as well here to see if you get more information.faint-zoo-41552
04/02/2024, 4:42 PMdry-beach-38304
04/02/2024, 4:43 PMdazzling-restaurant-78275
04/11/2024, 4:38 AMmteb[beir]==1.1.2
Just this package is enough to trigger the issue (works on poetry). I tracked it down to --only-binary=:all: flag that is being used when building the environment bundle. Not sure what the workaround would be for this. In my case I think it would be acceptable to allow non-binaries.
Any ideas on how I can proceed on this?dry-beach-38304
04/11/2024, 6:14 AMdry-beach-38304
04/11/2024, 6:20 AMdry-beach-38304
04/11/2024, 6:23 AMsubprocess.check_call(
[
sys.executable,
"-m",
"metaflow.cmd.main_cli",
"environment",
"resolve",
"-r",
req_file.name,
"--alias",
"named_env_alias_you_pick"
],
Once that flow runs on batch/kube/whatever but basically on the target platform, you can then simply use @named_env(name="named_env_alias_you_pick") in your flow and you should be all set. Let me know if you have questions getting it to work but it should be pretty straightforward. Basically, you have a flow that builds the environment in a non-cross platform way and then you can use it later (Metaflow will remember it).