# Using Python's subprocess module using PyCall

**URL:** <https://discourse.julialang.org/t/using-pythons-subprocess-module-using-pycall/2807>\
**Category:** New to Julia\
**Tags:** pycall\
**Created:** [March 22, 2017, 2:00am UTC](https://discourse.julialang.org/t/using-pythons-subprocess-module-using-pycall/2807 "2017-03-22T02:00:30Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![michK](https://avatars.discourse-cdn.com/v4/letter/m/258eb7/32.png) [@michK](https://discourse.julialang.org/u/michK)\
**Post date:** [March 22, 2017, 2:00am UTC](https://discourse.julialang.org/t/using-pythons-subprocess-module-using-pycall/2807/1 "2017-03-22T02:00:30Z")

</div>

Why would:

```
using PyCall
@pyimport subprocess.call as call_prog

```

result in:

```
ERROR: LoadError: PyError (:PyImport_ImportModule) <type 'exceptions.ImportError'>
ImportError('No module named call',)

```

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [March 22, 2017, 2:21am UTC](https://discourse.julialang.org/t/using-pythons-subprocess-module-using-pycall/2807/2 "2017-03-22T02:21:06Z")

</div>

> [@michK](#):
>
> `@pyimport subprocess.call as call_prog`

`subprocess.call` is a function, not a module, and `@pyimport` only works with modules. Just do

```julia
call_prog = pyimport("subprocess")["call"]

# then you can do, for example:
call_prog(["ls", "-l"])
call_prog("ls -l", shell=true)

```

---

<div class="post-metadata">

**Author:** ![michK](https://avatars.discourse-cdn.com/v4/letter/m/258eb7/32.png) [@michK](https://discourse.julialang.org/u/michK)\
**Post date:** [March 22, 2017, 2:51am UTC](https://discourse.julialang.org/t/using-pythons-subprocess-module-using-pycall/2807/3 "2017-03-22T02:51:23Z")

</div>

That make sense. Thank you very much.
