That's not a small issue. The ecosystem is probably the reason people choose NumPy over MATLAB, for example. NumPy is not inherently superior to MATLAB, and most academicians that adopted NumPy in the 2000's already had a MATLAB license, so cost was not a concern either.
I do disagree strongly with the opinion that Numpy is no better than MATLAB :). MATLAB has adopted some Numpy features after Numpy came out (broadcasting for example) but Numpy offered some genuine and unique advantages, both technical (broadcasting, no need for a MEX compiler that I have to pay through my nose for, not restricted to weird naming conventions, nature of parameter passing, ...) and legal.
For more pure research and prototyping things both can do, I still think matlab is better though I rarely use it. I just like the idea of being able to easily deploy the code later somehow. Kind of an entrepreneurial feature.
In fact, it's not an issue at all since Julias ecosystem is a superset of that of Python: with PyCall you can use Python libraries and Julia libraries in one program without issues.
using PyCall
np = pyimport("numpy")
res = np.fft.fft(rand(ComplexF64, 10))
You just called numpy fft from Julia.
julia> data = rand(ComplexF64, 1024^2);
# python fft from julia:
julia> res = @btime np.fft.fft(data);
78.613 ms (39 allocations: 16.00 MiB)
# python fft in ipython:In [11]: %timeit res = np.fft.fft(data)
89.3 ms ± 1.65 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
As expected, julia has its own fft package (based on FFTW):
julia> res = @btime fft(data);
61.540 ms (33 allocations: 16.00 MiB)Python packages are either interfacing external libraries (something that is much easier to do in Julia) or if they are pure python, badly designed and buggy.
(and package management in python is broken beyond repair)