NVIDIA-ISAAC-ROS / isaac_ros_common

Common utilities, packages, scripts, Dockerfiles, and testing infrastructure for Isaac ROS packages.
https://developer.nvidia.com/isaac-ros-gems
Other
197 stars 140 forks source link

pip install --no-cache-dir, instead of --no-cache? #49

Open iraadit opened 1 year ago

iraadit commented 1 year ago

In https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common/blob/main/docker/Dockerfile.aarch64#L149, pip install --no-cache is used. pip install --no-cache seems to not exist, should it be changed to pip install --no-cache-dir ?

hemalshahNV commented 1 year ago

Strange indeed. --no-cache-dir is what we need, but --no-cache works fine in pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8) within the container and when building image itself on a Jetson. Are you rebuilding the aarch64 image or just using the commands? If the latter, could you list what version of pip3 you have (pip3 --version)?

iraadit commented 1 year ago

# pip3 --version pip 22.2.2 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)

I created a modified version of isaac_ros_common for our needs, and use several recent docker features. It is based on nvcr.io/nvidia/l4t-base:r35.1.0, corresponding to isaac_ros_common Isaac ROS 0.11.0 (DP1.1).

I stumbled upon this when I was looking into pip caching.

I modified it to use docker buildx bake and QEMU, and it can therefore build on the Jetson, on a host x64 computer and with our CI.

In the pip documentation, I find "--no-cache-dir", but there is no mention of "--no-cache", no results on Google either.

"--no-cache" can be an argument of docker build though

hemalshahNV commented 1 year ago

We'll update to --no-cache-dir in Isaac ROS Common as that reads more correct anyway. We would love to hear about your modifications and add them back into Isaac ROS Common if you'd care to describe them. We're working to enable BuildKit for Isaac ROS Dev base images to gain access to more advanced Docker directives.

executter commented 4 months ago

pip use argparse to parse arguments. By default, argparse allows long options to be abbreviated. These commands work too: pip install --no-cache-d pip install --no-ca