# Pkg.build() vs Pkg.add() with julia -e

**URL:** <https://discourse.julialang.org/t/pkg-build-vs-pkg-add-with-julia-e/65762>\
**Category:** General Usage\
**Created:** [August 3, 2021, 10:54pm UTC](https://discourse.julialang.org/t/pkg-build-vs-pkg-add-with-julia-e/65762 "2021-08-03T22:54:28Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![banksiaboy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/banksiaboy/32/27032_2.png) [@banksiaboy](https://discourse.julialang.org/u/banksiaboy)\
**Post date:** [August 3, 2021, 10:54pm UTC](https://discourse.julialang.org/t/pkg-build-vs-pkg-add-with-julia-e/65762/1 "2021-08-03T22:54:28Z")

</div>

When constructing command-lines to start he Julia REPL, I’m noticing some folks using `Pkg.build("PyCall)` rather than `Pkg.add("PyCall")`.

The command-line I want to build is to allow many Julia environments, particularly jupyter-based tutorials, to start with their own independent Python environments.

I’ve added the -i parameter for my experimentation. Adding IJulia is probably unnecessary, and should be in the activated environment anyway.

Looks like:

```julia
PYTHON="" julia -i -e 'using Pkg; Pkg.activate("."); Pkg.build("PyCall");Pkg.add("IJulia"); Pkg.instantiate(); using PyCall IJulia'

```

Questions:

1. It all seems to work fine, but why **build()**? Does it force some reconciliation with my local environment?
2. Could both PyCall and IJulia packages been added to the activate environment’s `.toml`?
