cuốn sách gpt4 ai đã làm

python — Lỗi nhập vải: "tác vụ fab" so với "từ tác vụ nhập fabfile; task()"

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 05:52:02 25 4
mua khóa gpt4 Nike

Điều này cũng liên quan đến cơ chế nhập của Python, đặc biệt với việc sử dụng import có liên quan. Sử dụng Python 2.7.9 và Fabric 1.10.0, tạo ba tệp sau:

fabfile.py:

từ một lần nhập khác_hello
chắc chắn xin chào():
in 'xin chào thế giới'
cái khác_hello()

khác.py:

chắc chắn another_hello():
từ văn bản nhập bí mật

print 'Xin chào thế giới!'
in 'văn bản: ' + TEXT

bí mật/__init__.py:(Đồng thời tạo thư mụcbí mật/)

TEXT = 'bí mật'

thử ngay bây giờ tuyệt vời xin chào. Nó nhắc:

  Tệp "/home/sergey/projects/Bask/service/t/fabfile.py", dòng 4, trong hello
cái khác_hello()
Tệp "/home/sergey/projects/Bask/service/t/another.py", dòng 2, trong another_hello
từ văn bản nhập bí mật
ImportError: Không có mô-đun nào có tên bí mật

Đồng thời, bạn có thể dễ dàng khởi động trình thông dịch và nhậpNhập lời chào từ fab;. Hoạt động hoàn hảo:

Trong [2]: từ nhập fabfile xin chào; 
xin chào thế giới
Xin chào thế giới!
văn bản: bí mật

为什么会有这种差异?

Bây giờ tôi đã tìm ra một thủ thuật để thực hiện việc này. Chỉ cần thay đổi bí mật nhập khẩu 添加到 fabfile.py Chỉ cần bắt đầu với . Tôi nghĩ chuyện đã xảy ra là tuyệt vời Công cụ đang mở fabfile.py để tìm một nhiệm vụ cụ thể chỉ áp dụng cho phù hợp PYTHONPATH, nhưng sau khi nó đã nhập tác vụ và bắt đầu thực sự chạy nó thì có gì đó sẽ thay đổi khiến nó không thể truy cập vào thư mục gốc nữa.

Liệu kỹ thuật của tôi có hiệu quả không? Nhưng nó không phá vỡ sự đóng gói, nói lần cuối, bởi vì fabfile.py nên biết về bất kỳ chức năng hoặc phương thức nào nó gọitất cả sự phụ thuộc gián tiếp? Có lẽ điều này trái ngược với một chức năng import Lập luận cho tuyên bố?

câu trả lời hay nhất

Đây là sự cố đã biết trong Fabric. Có một số vấn đề về nó trong trình theo dõi vấn đề Fabric trên Github. Nhìn thấy vấn đề #256例如。

解决方法

bạn có thể đặt

từ văn bản nhập bí mật

hiện hữukhác.pyDòng đầu tiên hoặc thêm thư mục hiện tại vào đường dẫn tìm kiếm mô-đun.

chắc chắn another_hello():

import sys
sys.path.insert(0, '')

từ văn bản nhập bí mật

print 'Xin chào thế giới!'
in 'văn bản: ' + TEXT

Về lỗi nhập python - vải: "tác vụ fab" so với "từ tác vụ nhập fabfile; task()", chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/29813233/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress