2016-01-27 22 views
11

Tôi đã cài đặt pytest vào virtualenv và đang chạy nó từ virtual env đó, nhưng nó không sử dụng các gói mà tôi đã cài đặt trong env ảo đó. Thay vào đó, nó đang sử dụng các gói hệ thống chính. (Sử dụng "python -m unittest discovery", tôi thực sự có thể chạy các thử nghiệm của mình với trăn phải và các gói, nhưng tôi muốn sử dụng khung py.test.)Làm cách nào để sử dụng pytest với virtualenv?

Có thể py.test thực sự không chạy các pytest bên trong virtualenv và tôi phải xác định pytest để chạy?

Làm thế nào để tôi nhận được py.test để chỉ sử dụng trăn và các gói nằm trong virtualenv của tôi?

Ngoài ra, vì tôi có một số trăn trên hệ thống của mình, làm thế nào để tôi biết python pytest đang sử dụng? Nó sẽ tự động sử dụng python trong virtualenv của tôi, hay tôi phải chỉ định bằng cách nào đó?

+0

Bạn có thực sự kích hoạt virtualenv bạn đã tạo trước khi cài đặt và chạy pytest? tức là 'nguồn venv/bin/kích hoạt' –

+0

Chắc chắn. Tôi sử dụng virtualenvwrapper và virtualenv hiện đang được kích hoạt hiển thị trên lời nhắc của tôi khi nó được kích hoạt. Ngoài ra, tôi có thể xem các gói cài đặt của virtualenv hiện tại bằng cách sử dụng pip freeze. –

+1

Tôi đã làm việc này. Nó chỉ yêu cầu khởi động lại thiết bị đầu cuối. –

Trả lời

0

bạn phải kích hoạt python env của bạn mỗi khi bạn muốn chạy script python của bạn, bạn có nhiều cách để kích hoạt nó, chúng tôi giả định rằng virtualenv bạn được cài đặt dưới/home/venv:

1- dựa một là chạy python với dòng một lệnh >>> /home/venv/bin/python <your python file.py>

2- thêm dòng này ở phía trên của tập tin script python #! /home/venv/bin/python và sau đó chạy python <you python file.py>

3 kích hoạt python của bạn env source /home/venv/bin/activate và thứ en chạy bạn kịch bản như python <you python file.py>

4 sử dụng virtualenvwrapper cho người quản lý và kích hoạt các môi trường python của bạn

+0

Tôi chắc chắn luôn luôn kích hoạt env mỗi khi tôi chạy bất kỳ kịch bản nào từ nó và tắt nó khi tôi hoàn thành. –

+0

Virtualenv hoạt động của tôi là một phần của lời nhắc của tôi. Tôi nhận được py.test để sử dụng virtualenv bằng cách khởi động lại thiết bị đầu cuối của mình. –

2

Trong trường hợp của tôi, tôi đã buộc phải rời khỏi venv (tắt), tháo pytest (pip uninstall pytest), nhập venv (nguồn/my/path/to/venv), và sau đó cài đặt lại pytest (pip install pytest). Tôi không biết chính xác lý do tại sao pip từ chối cài đặt pytest trong venv (nó nói nó đã có mặt).

Tôi hy vọng điều này sẽ giúp

11

Bên trong môi trường của bạn, bạn có thể thử

python -m pytest 
Các vấn đề liên quan