Phần sau không giải quyết được vấn đề của OP, nhưng tiêu đề và lỗi chính xác là những gì tôi phải đối mặt.
Nếu dự án của bạn có setup.py
tập lệnh trong đó, bạn có thể cài đặt gói mà bạn đang sử dụng, với python3 -m pip install -e .
hoặc python3 setup.py install
hoặc python3 setup.py develop
và gói này sẽ được cài đặt, nhưng vẫn có thể chỉnh sửa được (vì vậy các thay đổi đối với mã sẽ được nhìn thấy khi nhập gói). Nếu nó không có setup.py
, hãy hiểu nó .
Dù sao, vấn đề OP gặp phải dường như không còn tồn tại nữa?
tập tin one.py
:
def function():
print("output")
tập tin two.py
:
import one
one.function()
chmod +x two.py
./two.py
Command line output: output
Các giải pháp khác có vẻ 'bẩn'
Trong trường hợp OP với 2 tệp thử nghiệm, sửa đổi chúng để hoạt động có lẽ là ổn. Tuy nhiên, trong các tình huống thực tế khác, các phương pháp được liệt kê trong các câu trả lời khác có thể không được khuyến khích. Chúng yêu cầu bạn sửa đổi mã python hoặc hạn chế tính linh hoạt của bạn (chạy tệp python từ một thư mục cụ thể) và thường gây ra những phiền toái. Điều gì sẽ xảy ra nếu bạn vừa nhân bản một dự án, và điều này xảy ra? Nó có thể đã hoạt động với những người khác và việc thay đổi mã là không cần thiết. Câu trả lời được chọn cũng muốn mọi người chạy một tập lệnh từ một thư mục cụ thể để làm cho nó hoạt động. Đây có thể là một nguồn gây khó chịu lâu dài, điều này không bao giờ tốt. Nó cũng gợi ý thêm thư mục python cụ thể của bạn vào PATH (có thể được thực hiện thông qua python hoặc dòng lệnh). Một lần nữa, điều gì sẽ xảy ra nếu bạn đổi tên hoặc di chuyển thư mục sau vài tháng? Bạn phải tìm lại trang này, và cuối cùng phát hiện ra bạn cần đặt đường dẫn (và bạn đã làm chính xác điều này vài tháng trước) và bạn chỉ cần cập nhật đường dẫn (chắc chắn rằng bạn có thể sử dụng sys.path và đặt nó theo chương trình, nhưng điều này vẫn có thể xảy ra ). Nhiều nguồn bức xúc lớn.
import sys; sys.path